সত্তা এবং উপাদানগুলিতে পদ্ধতিগুলি সঞ্চয় করা কেন খারাপ ধারণা? (অন্যান্য কিছু সত্তা সিস্টেমের প্রশ্নের সাথে।)


16

এটি এই প্রশ্নের অনুসরণ, যা আমি উত্তর দিয়েছি, তবে এটি একটি আরও নির্দিষ্ট বিষয় নিয়ে কাজ করে।

এই উত্তরটি আমাকে নিবন্ধের চেয়ে আরও ভালভাবে সত্তা সিস্টেমগুলি বুঝতে সহায়তা করেছে।

সত্তা সিস্টেমগুলি সম্পর্কে আমি (হ্যাঁ, দ্য) নিবন্ধটি পড়েছি এবং এটি আমাকে নিম্নলিখিতটি জানিয়েছে:

সংস্থাগুলো শুধু একটি আইডি এবং উপাদান একটি অ্যারের (প্রবন্ধ বলছেন যে উপাদান মধ্যে সত্ত্বা সংরক্ষণকারী জিনিসগুলি এটি একটি দুর্দান্ত উপায় হয় না, কিন্তু একটি বিকল্প উপলব্ধ করা হয় না) হয়।
উপাদানগুলি হ'ল ডেটার টুকরো, যা নির্দিষ্ট সত্তা দিয়ে কী করা যায় তা নির্দেশ করে।
সিস্টেমগুলি হ'ল "পদ্ধতি", তারা সত্তায় ডেটা ম্যানিপুলেশন সম্পাদন করে।

এটি অনেক পরিস্থিতিতে সত্যিই বাস্তব বলে মনে হচ্ছে, তবে উপাদানগুলির কেবলমাত্র ডেটা ক্লাস হওয়ার অংশটি আমাকে বিরক্ত করছে। উদাহরণস্বরূপ, কীভাবে আমি আমার সেক্টর সিস্টেমে আমার ভেক্টর 2 ডি ক্লাস (অবস্থান) প্রয়োগ করতে পারি?

ভেক্টর 2 ডি শ্রেণিটি ডেটা ধারণ করে: x এবং y স্থানাঙ্ক, তবে এর পদ্ধতিও রয়েছে , যা এর উপযোগের জন্য অত্যন্ত গুরুত্বপূর্ণ এবং শ্রেণিটিকে মাত্র দুটি উপাদান অ্যারে থেকে পৃথক করে। উদাহরণ পদ্ধতিগুলি হল: add(), rotate(point, r, angle), substract(), normalize(), এবং সমস্ত অন্যান্য মান দরকারী, এবং একেবারে প্রয়োজন পদ্ধতি অবস্থানের (যা Vector2D ক্লাসের দৃষ্টান্ত হয়) থাকা উচিত যে।

উপাদানটি যদি কেবল কোনও ডেটা ধারক হত তবে এই পদ্ধতিগুলি রাখতে সক্ষম হবেন না!

সম্ভবত পপ আপ হতে পারে এমন একটি সমাধান হ'ল এটি সিস্টেমের অভ্যন্তরে তাদের বাস্তবায়ন করা, তবে এটি অত্যন্ত পাল্টা স্বজ্ঞাত বলে মনে হচ্ছে। এই পদ্ধতিগুলি এমন জিনিস যা আমি এখন সম্পাদন করতে চাই , সেগুলি সম্পূর্ণ এবং ব্যবহারের জন্য প্রস্তুত থাকুন। আমি MovementSystemকোনও ব্যয়বহুল সেটগুলির সন্ধানের জন্য অপেক্ষা করতে চাই না যা এটি কোনও সত্তার অবস্থানের উপর কোনও গণনা সম্পাদনের নির্দেশ দেয়!

এবং, নিবন্ধটি খুব স্পষ্টভাবে জানিয়েছে যে কেবল সিস্টেমগুলির কোনও কার্যকারিতা থাকা উচিত এবং এর জন্য একমাত্র ব্যাখ্যা, যা আমি খুঁজে পেতে পারি তা হ'ল "ওওপি এড়ানো"। প্রথমত, আমি বুঝতে পারি না কেন সত্তা এবং উপাদানগুলিতে পদ্ধতি ব্যবহার করা থেকে আমাকে বিরত থাকতে হবে। মেমরির ওভারহেড ব্যবহারিকভাবে একই রকম এবং যখন সিস্টেমগুলির সাথে মিলিত হয় তখন এগুলি কার্যকর করা সহজ এবং আকর্ষণীয় উপায়ে একত্রিত হওয়া উচিত। উদাহরণস্বরূপ, সিস্টেমগুলি কেবলমাত্র সত্তা / উপাদানগুলিকে প্রাথমিক যুক্তি সরবরাহ করতে পারে, যা তারা নিজেরাই বাস্তবায়ন জানে। আপনি যদি আমাকে জিজ্ঞাসা করেন - এটি মূলত ইএস এবং ওওপি উভয়ের কাছ থেকে গুডিজ নিচ্ছে, যা নিবন্ধের লেখক অনুসারে করা যায় না তবে আমার কাছে এটি একটি ভাল অনুশীলনের মতো বলে মনে হয়।

এই ভাবে চিন্তা করুন; একটি গেমটিতে বিভিন্ন ধরণের ড্রয়যোগ্য অবজেক্ট রয়েছে। সরল পুরাতন চিত্র, অ্যানিমেশন ( update(), getCurrentFrame()ইত্যাদি), এই আদিম ধরণের সংমিশ্রণগুলি এবং এগুলির সমস্তগুলি সহজভাবে draw()রেন্ডার সিস্টেমকে একটি পদ্ধতি সরবরাহ করতে পারে, যার পরে কেবল কোনও সত্তার স্প্রিট কীভাবে প্রয়োগ করা হয় সে সম্পর্কে যত্ন নেওয়া দরকার না, কেবলমাত্র ইন্টারফেস (অঙ্কন) এবং অবস্থান সম্পর্কে। এবং তারপরে, আমার কেবলমাত্র একটি অ্যানিমেশন সিস্টেমের প্রয়োজন হবে যা অ্যানিমেশন-নির্দিষ্ট পদ্ধতিগুলিকে কল করবে যার সাথে রেন্ডারিংয়ের সাথে কোনও সম্পর্ক নেই।

এবং অন্য একটি জিনিস ... উপাদানগুলি সংরক্ষণের ক্ষেত্রে অ্যারেগুলির আসলেই কোনও বিকল্প আছে? সত্তা শ্রেণীর অভ্যন্তরে অ্যারে ব্যতীত উপাদানগুলি সংরক্ষণের জন্য আমি অন্য কোনও স্থান দেখছি না ...

হতে পারে, এটি আরও ভাল পদ্ধতির: সত্তার সাধারণ বৈশিষ্ট্য হিসাবে উপাদানগুলি সঞ্চয় করুন। উদাহরণস্বরূপ, একটি অবস্থানের উপাদানটি আঠালো হবে entity.position

শুধুমাত্র অন্যান্য উপায় একটি অদ্ভুত লুকআপ টেবিল কোন না কোন রকমের হবে ভিতরে , সিস্টেম যে রেফারেন্স বিভিন্ন সত্ত্বা। তবে এটি সত্তার উপাদানগুলি সংরক্ষণ করার চেয়ে বিকাশ করা অত্যন্ত অদক্ষ এবং জটিল বলে মনে হচ্ছে ।


আলেকজান্দ্রে আপনি কি আরও একটি ব্যাজ পেতে প্রচুর সম্পাদনা করছেন? কারণ এটি দুষ্টু দুষ্টু, এটি এক টন প্রাচীন থ্রেডকে ধাক্কা দিয়ে চলেছে।
জোকিং করা

উত্তর:


25

আমি মনে করি উপাদানগুলিতে ডেটা অ্যাক্সেস, আপডেট বা ম্যানিপুলেট করার সহজ পদ্ধতিগুলি থাকা সম্পূর্ণ জরিমানা। আমি মনে করি যে কার্যকারিতা যা উপাদানগুলির বাইরে থাকা উচিত তা হ'ল যৌক্তিক কার্যকারিতা। ইউটিলিটি ফাংশন ঠিক আছে। মনে রাখবেন, সত্তা-উপাদান সিস্টেমটি কেবল একটি গাইডলাইন, আপনাকে অনুসরণ করতে হবে এমন কঠোর নিয়ম নয়। তাদের অনুসরণ করার জন্য আপনার পথ থেকে দূরে যাবেন না। আপনি যদি মনে করেন এটি একভাবে করার জন্য এটি আরও অর্থবোধ করে, তবে এটি সেভাবে করুন :)

সম্পাদনা

স্পষ্ট করে বলতে গেলে, আপনার লক্ষ্য ওওপি এড়ানো নয় । আজকাল ব্যবহৃত বেশিরভাগ সাধারণ ভাষায় এটি বেশ কঠিন হবে be আপনি উত্তরাধিকার হ্রাস করার চেষ্টা করছেন যা ওওপির একটি বৃহত দিক, তবে প্রয়োজন নেই। আপনি অবজেক্ট-> মোবাইলঅজেক্ট-> ক্রিয়ার-> বাইপেইডাল-> মানব টাইপের উত্তরাধিকার থেকে মুক্তি পেতে চান।

তবে কিছু উত্তরাধিকার রাখা ঠিক আছে! আপনি এমন একটি ভাষা নিয়ে কাজ করছেন যা উত্তরাধিকার দ্বারা ব্যাপকভাবে প্রভাবিত হয়, এর কোনওটি ব্যবহার না করা খুব কঠিন। উদাহরণস্বরূপ, আপনার কাছে এমন কোনও Componentশ্রেণি বা ইন্টারফেস থাকতে পারে যা আপনার অন্যান্য সমস্ত উপাদানগুলি প্রসারিত বা প্রয়োগ করে। আপনার Systemক্লাসের সাথে একই চুক্তি । এটি জিনিসগুলি অনেক সহজ করে তোলে। আমি আপনাকে দৃ strongly ়ভাবে আর্টেমিস ফ্রেমওয়ার্কটি একবার দেখার পরামর্শ দিচ্ছি । এটি ওপেন সোর্স এবং এটির কয়েকটি উদাহরণ প্রকল্প রয়েছে। এই জিনিসগুলি খুলুন এবং দেখুন এটি কীভাবে কাজ করে।

আর্টেমিসের জন্য, সত্ত্বাগুলি একটি অ্যারে, সাধারণ stored তবে তাদের উপাদানগুলি একটি অ্যারে বা অ্যারেতে সঞ্চিত হয় (সত্তা থেকে পৃথক)। শীর্ষ স্তরের অ্যারের উপাদান স্তর দ্বারা নিম্ন স্তরের অ্যারে গ্রুপ করে। সুতরাং প্রতিটি উপাদান টাইপ এর নিজস্ব অ্যারে আছে। নিম্ন স্তরের অ্যারেটি সত্তা আইডি দ্বারা সূচকযুক্ত। (এখন আমি নিশ্চিত না যে আমি এটি সেভাবে করতাম কিনা, তবে এটি এখানেই হয়েছে)। আর্টেমিস সত্তা আইডি পুনরায় ব্যবহার করে, তাই সত্ত্বা আইডিটি আপনার বর্তমান সত্ত্বার সংখ্যার চেয়ে বৃহত্তর হয় না, তবে উপাদানটি প্রায়শই ব্যবহৃত উপাদান না হলে আপনার ক্ষেত্রে স্পারস অ্যারে থাকতে পারে। যাইহোক, আমি এটিকে খুব বেশি আলাদা করব না। সত্তা এবং তাদের উপাদানগুলি সংরক্ষণ করার জন্য এই পদ্ধতিটি কার্যকর বলে মনে হচ্ছে। আমি মনে করি এটি আপনার নিজস্ব সিস্টেম প্রয়োগের ক্ষেত্রে একটি দুর্দান্ত পাস করবে।

সত্তা এবং উপাদানগুলি একটি পৃথক পরিচালকের মধ্যে সংরক্ষণ করা হয়।

আপনি যে কৌশলটি উল্লেখ করেছেন, সত্তাগুলি তাদের নিজস্ব উপাদানগুলি ( entity.position) সংরক্ষণ করে তা সত্তা উপাদান থিমের বিরুদ্ধে এক ধরণের, তবে আপনি যদি মনে করেন যে এটি সবচেয়ে সার্থক করে।


1
হুম, এটি পরিস্থিতিটি ব্যাপকভাবে সরল করে দেয়, ধন্যবাদ! আমি ভেবেছিলাম যে এখানে কিছু জাদু রয়েছে "আপনি পরে আফসোস করবেন" জিনিসটি চলছে, এবং আমি এটি দেখতে পেলাম না!
jcora

1
না, আমি তাদের পুরোপুরি আমার সত্তা উপাদান সিস্টেমে ব্যবহার করি। আমি এমনকি কিছু উপাদান যে একটি সাধারণ পিতা বা মাতা থেকে উত্তরাধিকারী, have খাবি । আমি মনে করি আপনি কেবল অনুশোচনা হ'ল যদি আপনি সেভাবে পদ্ধতি ব্যবহার না করে কাজ করার চেষ্টা করেন । এটি আপনার পক্ষে সর্বাধিক বোধগম্য কাজটি করে। যদি উত্তরাধিকার ব্যবহার করা বা কোনও উপাদানটিতে কিছু পদ্ধতি রাখার অর্থ হয় তবে এটির জন্য যান।
মাইকেলহাউস

2
আমি এই বিষয়ে আমার শেষ উত্তর থেকে শিখেছি। দাবি অস্বীকার: আমি বলছি না এটি এটি করার উপায়। :)
মাইকেলহাউস

1
হ্যাঁ, আমি জানি যে একটি নতুন দৃষ্টান্ত শিখতে কত ভয়ঙ্কর হতে পারে। ভাগ্যক্রমে, আপনি জিনিসগুলি আরও সহজ করতে আপনি পুরানো দৃষ্টান্তের দিকগুলি ব্যবহার করতে পারেন! আমি স্টোরেজ তথ্য দিয়ে আমার উত্তর আপডেট করেছি। আপনি যদি আর্টেমিসের দিকে তাকান, তবে EntityManagerজিনিসগুলি যেখানে সঞ্চিত রয়েছে সে হিসাবে এটি পরীক্ষা করে দেখুন ।
মাইকেলহাউস

1
নিস! এটি হয়ে গেলে এটি একটি সুন্দর মিষ্টি ইঞ্জিন হতে চলেছে। শুভকামনা এর সাথে! আকর্ষণীয় প্রশ্ন জিজ্ঞাসা করার জন্য ধন্যবাদ।
মাইকেলহাউস

10

'সেই' নিবন্ধটি আমি বিশেষভাবে একমত নই, তাই আমার উত্তরটি কিছুটা সমালোচিত হবে বলে আমি মনে করি।

এটি অনেক পরিস্থিতিতে সত্যিই বাস্তব বলে মনে হচ্ছে, তবে উপাদানগুলির কেবলমাত্র ডেটা ক্লাস হওয়ার অংশটি আমাকে বিরক্ত করছে। উদাহরণস্বরূপ, কীভাবে আমি আমার সেক্টর সিস্টেমে আমার ভেক্টর 2 ডি ক্লাস (অবস্থান) প্রয়োগ করতে পারি?

ধারণাটি নিশ্চিত করা যায় না যে আপনার প্রোগ্রামের কোনও কিছুই সত্তা আইডি, উপাদান বা সিস্টেম ব্যতীত অন্য কিছু নয় - এটি নিশ্চিত করা যায় যে কোনও উত্তরাধিকারী গাছ ব্যবহার করার পরিবর্তে বা আরও খারাপ চেষ্টা করার পরিবর্তে সত্তা ডেটা এবং আচরণ তৈরি করা হয়েছে অবজেক্টের মাধ্যমে তৈরি করা worse সমস্ত সম্ভাব্য কার্যকারিতা একটি বস্তুতে রাখুন। এই উপাদানগুলি এবং সিস্টেমগুলি বাস্তবায়নের জন্য আপনার কাছে অবশ্যই ভেক্টরগুলির মতো স্বাভাবিক তথ্য থাকবে যা বেশিরভাগ ভাষায় সেরা হিসাবে শ্রেণীরূপে উপস্থাপন করা হয়।

নিবন্ধের কিছুটা উপেক্ষা করুন যা পরামর্শ দেয় এটি ওওপি নয় - এটি অন্য কোনও পদ্ধতির মতোই ওওপি। যখন বেশিরভাগ সংকলক বা ভাষার রানটাইমগুলি অবজেক্টের পদ্ধতিগুলি প্রয়োগ করে, এটি মূলত অন্য কোনও ফাংশনের মতোই হয়, যাকে বলা হয় কোনও লুকানো আর্গুমেন্ট thisবা self, যা মেমরির এমন কোনও স্থানের নির্দেশক যেখানে সেই বস্তুর ডেটা সঞ্চিত থাকে। কোনও উপাদান ভিত্তিক সিস্টেমে সত্তা আইডিটি প্রদত্ত সত্তার জন্য প্রাসঙ্গিক উপাদান (এবং এভাবে ডেটা) কোথায় তা সন্ধান করতে ব্যবহার করা যেতে পারে। সুতরাং সত্তা আইডি এই / স্ব পয়েন্টারের সমতুল্য এবং ধারণাগুলি মূলত একই জিনিস, কেবল সামান্য পুনরায় সাজানো।

এবং, নিবন্ধটি খুব স্পষ্টভাবে জানিয়েছে যে কেবল সিস্টেমগুলির কোনও কার্যকারিতা থাকা উচিত এবং এর জন্য একমাত্র ব্যাখ্যা, যা আমি খুঁজে পেতে পারি তা হ'ল "ওওপি এড়ানো"। প্রথমত, আমি বুঝতে পারি না কেন সত্তা এবং উপাদানগুলিতে পদ্ধতি ব্যবহার করা থেকে আমাকে বিরত থাকতে হবে।

ভাল. পদ্ধতিগুলি আপনার কোডটি সংগঠিত করার একটি কার্যকর উপায়। "ওওপি এড়ানো" ধারণাটি থেকে দূরে রাখা গুরুত্বপূর্ণ বিষয় হ'ল কার্যকারিতা বাড়ানোর জন্য সর্বত্র উত্তরাধিকার ব্যবহার এড়ানো। পরিবর্তে, কার্যকারিতাটি উপাদানগুলিতে বিভক্ত করুন যা একই কাজটি করার জন্য একত্রিত হতে পারে।

এই ভাবে চিন্তা করুন; একটি গেমটিতে বিভিন্ন ধরণের ড্রয়যোগ্য অবজেক্ট রয়েছে। সরল পুরানো চিত্র, অ্যানিমেশন (আপডেট (), getCurrentFrame (), ইত্যাদি), এই আদিম ধরণের সংমিশ্রণগুলি এবং এগুলি সমস্তই রেন্ডার সিস্টেমে একটি অঙ্কন () পদ্ধতি সরবরাহ করতে পারে [...]

একটি উপাদান ভিত্তিক সিস্টেমের ধারণাটি হ'ল আপনার এগুলির জন্য পৃথক শ্রেণি নেই, তবে একটি একক অবজেক্ট / সত্তা শ্রেণি থাকবে এবং চিত্রটি একটি অবজেক্ট / সত্তা যাতে একটি চিত্ররেন্ডার আছে, অ্যানিমেশনগুলি কোনও অবজেক্ট / সত্তা যার অ্যানিমেশন রেন্ডারার ইত্যাদি রয়েছে relevant

[...] যার পরে কোনও সত্তার স্প্রাইট কীভাবে প্রয়োগ করা হয় তা কেবল ইন্টারফেস (অঙ্কন) এবং অবস্থান সম্পর্কে চিন্তা করার দরকার নেই। এবং তারপরে, আমার কেবলমাত্র একটি অ্যানিমেশন সিস্টেমের প্রয়োজন হবে যা অ্যানিমেশন-নির্দিষ্ট পদ্ধতিগুলিকে কল করবে যার সাথে রেন্ডারিংয়ের সাথে কোনও সম্পর্ক নেই।

অবশ্যই, তবে এটি উপাদানগুলির সাথে ভাল কাজ করে না। আপনার কাছে 3 টি পছন্দ রয়েছে:

  • প্রতিটি উপাদান এই ইন্টারফেসটি প্রয়োগ করে এবং একটি অঙ্কন () পদ্ধতি রয়েছে, এমনকি যদি কোনও কিছুই টানা না যায়। আপনি যদি প্রতিটি কার্যকারিতার জন্য এটি করেন তবে উপাদানগুলি দেখতে খুব কদর্য দেখাবে।
  • ইন্টারফেসটি বাস্তবায়নের জন্য কেবল কিছু উপাদান রয়েছে - তবে কে সিদ্ধান্ত নেয় যে কোন উপাদানগুলিকে অঙ্কন () কল করতে হবে? কোন ইন্টারফেসটি সমর্থিত তা দেখার জন্য কি কোনও সিস্টেমকে প্রতিটি উপাদানকে কোনওভাবে জিজ্ঞাসা করতে হবে? এটি ত্রুটি-ঝুঁকিপূর্ণ এবং কিছু ভাষায় বাস্তবায়নের পক্ষে সম্ভাব্য কৌশলযুক্ত।
  • উপাদানগুলি কেবল তাদের নিজস্ব সিস্টেম দ্বারা পরিচালিত হয় (যা লিঙ্কযুক্ত নিবন্ধে ধারণা)। কোন ক্ষেত্রে, ইন্টারফেসটি অপ্রাসঙ্গিক কারণ কোনও সিস্টেম সঠিকভাবে জানে যে এটি কোন শ্রেণি বা অবজেক্টের সাথে কাজ করছে।

এবং অন্য একটি জিনিস ... উপাদানগুলি সংরক্ষণের ক্ষেত্রে অ্যারেগুলির আসলেই কোনও বিকল্প আছে? সত্তা শ্রেণীর অভ্যন্তরে অ্যারে ব্যতীত উপাদানগুলি সংরক্ষণের জন্য আমি অন্য কোনও স্থান দেখছি না ...

আপনি সিস্টেমে উপাদানগুলি সংরক্ষণ করতে পারেন। অ্যারেটি সমস্যা নয়, তবে আপনি উপাদানটি কোথায় সঞ্চয় করবেন।


+1 অন্য দৃষ্টিভঙ্গির জন্য ধন্যবাদ। এ জাতীয় অস্পষ্ট বিষয় নিয়ে কাজ করার সময় কয়েকটা পাওয়া ভাল! আপনি যদি সিস্টেমে উপাদানগুলি সংরক্ষণ করছেন, তার মানে কি এই যে কোনও উপাদান দ্বারা কেবল কখনও কোনও সিস্টেম পরিবর্তন করা যায়? উদাহরণস্বরূপ, অঙ্কন সিস্টেম এবং চলন ব্যবস্থা উভয়ই অবস্থানের উপাদানটি অ্যাক্সেস করতে পারে। কোথায় রাখবেন?
মাইকেলহাউস

ওয়েল তারা কেবলমাত্র সেই উপাদানগুলির জন্য একটি পয়েন্টার সংরক্ষণ করবে, যা যতক্ষণ না আমি উদ্বিগ্ন অন্য কোথাও হতে পারে ... এছাড়াও, আপনি কেন সিস্টেমগুলিতে উপাদানগুলি সঞ্চয় করবেন? এতে কি কোনও সুবিধা আছে?
jcora

আমি কি ঠিক করছি, কাইলোটন? এইভাবে আমি এটি করব, এটি যৌক্তিক বলে মনে হচ্ছে ...
jcora

অ্যাডাম / টি-মেশিনের উদাহরণে, উদ্দেশ্যটি হ'ল প্রতিটি উপাদান প্রতি 1 টি সিস্টেম রয়েছে তবে একটি সিস্টেম অবশ্যই অন্যান্য উপাদানগুলিকে অ্যাক্সেস এবং সংশোধন করতে পারে। (এটি উপাদানগুলির মাল্টিথ্রেডিং সুবিধার ক্ষেত্রে বাধা দেয়, তবে এটি ভিন্ন বিষয়))
কাইলোটন

1
সিস্টেমে উপাদানগুলি সংরক্ষণ করে সেই সিস্টেমের জন্য আরও ভাল রেফারেন্সের অনুমতি দেয় - সেই সিস্টেমটি কেবল (সাধারণভাবে) সেই ডেটা নিয়ে কাজ করে, তাই কেন এটির জন্য আপনার কম্পিউটারের মেমরি সত্তা থেকে সত্তায় চলে গেল? এটি সামঞ্জস্যের সাথেও সহায়তা করে কারণ আপনি একটি সম্পূর্ণ সিস্টেম এবং এর ডেটা একটি কোর বা প্রসেসরের (অথবা এমনকি আলাদা কম্পিউটার, এমএমওগুলিতে) রাখতে পারেন। আবার, 1 টি সিস্টেম 1 ধরণের বেশি উপাদানকে অ্যাক্সেস করে যখন এই সুবিধাগুলি হ্রাস পায়, সুতরাং উপাদান / সিস্টেমের দায়িত্বগুলি কোথায় বিভক্ত করবেন তা সিদ্ধান্ত নেওয়ার সময় এটি বিবেচনায় নেওয়া উচিত।
কাইলোটন

2

একটি ভেক্টর হ'ল ডেটা। ফাংশনগুলি আরও ইউটিলিটি ফাংশনের মতো - তারা তথ্যের সেই উদাহরণটির সাথে নির্দিষ্ট নয়, এগুলি সমস্ত ভেক্টরগুলিতে স্বাধীনভাবে প্রয়োগ করা যেতে পারে। এটি সম্পর্কে চিন্তা করার একটি দুর্দান্ত উপায় হ'ল: এই ফাংশনগুলি কি স্থির পদ্ধতি হিসাবে আবার লেখা যেতে পারে? যদি তা হয় তবে এটি কেবল ইউটিলিটি।


আমি এটি জানি, তবে সমস্যাটি হ'ল কল করার পদ্ধতিগুলি দ্রুত এবং এটি একটি সিস্টেমের দ্বারা ঘটনাস্থলে করা যেতে পারে বা অন্য যে কোনও কিছুতে সত্তার অবস্থানকে সামাল দেওয়ার প্রয়োজন হতে পারে। আমি এটি ব্যাখ্যা করেছিলাম, এটি পরীক্ষা করে দেখুন, এছাড়াও প্রশ্নটির কাছে এর থেকে আরও অনেক কিছুই রয়েছে, আমি বিশ্বাস করি।
jcora
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.