' রাষ্ট্র ' শব্দটি বিভিন্ন ইন্দ্রিয়তে ব্যবহৃত হতে পারে, যা এমনকি সমস্ত সংক্ষিপ্ত সংজ্ঞায় সংবেদনশীল নাও হতে পারে। এটা খুবই জরুরী যে আপনি আপনার কাগজে একটি সংজ্ঞা অন্তর্ভুক্ত বেশ স্পষ্ট করতে কেমন ছিল আপনি শব্দটি ব্যবহার করে। নিম্নলিখিতটিতে আমি কোনও বস্তুর অবস্থার অনন্য সংজ্ঞা দিচ্ছি না বরং এটি সম্পর্কে বিভিন্ন ধরণের চিন্তাভাবনার চিত্র অঙ্কনের চেষ্টা করব যা বিভিন্ন প্রসঙ্গে উপযুক্ত হতে পারে।
তবে প্রথমে আপনাকে ভাবতে হবে যে ' অবজেক্ট ' বলতে কী বোঝায় : আপনি কি কোনও ধারণাগুলি অবজেক্ট, অর্থাৎ এমন কোনও সত্তা যা আপনি মডেল করার চেষ্টা করছেন, বা কোনও নির্দিষ্ট প্রোগ্রামে কোনও শ্রেণীর উদাহরণ সম্পর্কে চিন্তা করছেন; সম্ভবত আপনি কোনও ভেরিয়েবলের অবস্থা সম্পর্কেও ভাবতে চান যা বিভিন্ন সময়ে বিভিন্ন বস্তু বা কোনও সিস্টেম সম্পর্কে উল্লেখ করতে পারে, সম্ভবত কোনও নির্দিষ্ট ব্যবহারকারী ইন্টারফেসের মাধ্যমে অ্যাক্সেস করা যেতে পারে।
ওওপি-তে কোনও বস্তুর স্থিতি নির্ধারণে অসুবিধার অংশটি হ'ল আমরা যখন কোনও নির্দিষ্ট ভাষায় সত্তাকে মডেল করি তখন সেই ভাষা প্রায়শই আমাদের অবজেক্টের বৈশিষ্ট্যগুলিকে আলাদা করার অনুমতি দেয় না যা ধারণাগতভাবে একই সত্তার অংশ নয় যা অন্যদের থেকে নয়। উদাহরণস্বরূপ, একটি লিঙ্কযুক্ত তালিকায় Car
অনেকগুলি- Link
প্রকল্পের সমন্বয়ে গঠিত হবে , যার মধ্যে পরবর্তীগুলির (এবং সম্ভবত পূর্ববর্তী) পয়েন্টার রয়েছে Link
যদিও ধারণাগতভাবে তালিকাটি একটি একক বস্তু; লিঙ্কগুলি এম্বেড করা হতে পারেCar
-গুলিকে উদ্দেশ্য করে বা তাদের নির্দেশক ধারণ করে তবে এই ক্ষেত্রে লিঙ্কযুক্ত বস্তুগুলি তালিকার অংশের চেয়ে ধারণাগতভাবে পৃথক; সাম্প্রতিক পরিবর্তনগুলির তালিকায়, হয়েভার, পরিবর্তনগুলি কেবল তালিকায় উপস্থিত থাকতে পারে এবং এর অংশ হিসাবে বিবেচিত হতে পারে। এই বিভিন্ন ক্ষেত্রে আমাদের অবশ্যই সিদ্ধান্ত নিতে হবে যে আমরা কোনও বস্তুর স্থিতিকে লিঙ্কযুক্ত বস্তুর অন্তর্ভুক্ত করতে বিবেচনা করি কিনা। আরও, কোনওটির একটিতে Car
একটি লিঙ্ক থাকতে পারে Registering_Authority
- যখন তার নিবন্ধকরণ কর্তৃপক্ষ তার ওয়েবসাইটের ইউআরএল পরিবর্তন করে তখন আমরা সম্ভবত গাড়ীের অবস্থাটি পরিবর্তন করতে বিবেচনা করি না। বাস্তবায়ন ভাষা যদি না আমাদের লিঙ্কের বিভিন্ন ধরণের পার্থক্য করতে দেয়, তবে ভাষার একা একা কোনও পদার্থের অবস্থার সাধারণ সংজ্ঞা দেওয়া সম্ভব হবে না।
' বাহ্যিক ' বা ' কার্যকরী ' রাষ্ট্রটিকে 'এটি কীভাবে আচরণ করে' হিসাবে সংজ্ঞায়িত করা যেতে পারে, উদাঃ এটি পদ্ধতি আহ্বানগুলিতে বা কোনও ব্যবহারকারী ইন্টারফেসে কীভাবে প্রতিক্রিয়া দেখায়। শ্রেণীর উদাহরণ হিসাবে কোনও সামগ্রীর জন্য এই সংজ্ঞাটি সেই ধরণের উপর নির্ভর করে যা বস্তুর মালিকানাধীন হিসাবে দেখা হয়: একটি হিসাবে দেখা যায় Circle
, একটিটির রঙColoured_Circle
দৃশ্যমান নয় এবং তাই এটি তার রাজ্যের সাথে অপ্রাসঙ্গিক। এটির সাথে একটি অসুবিধা হ'ল 'এটি কীভাবে প্রতিক্রিয়া দেখায়' ফেরত মানের ক্ষেত্রে সংজ্ঞা দেওয়া দরকার হতে পারে এবং এই 'মানগুলি' অন্যান্য বস্তুর রাজ্য হতে পারে। এটিকে আনুষ্ঠানিক করার একটি উপায় বলতে গেলে যে কোনও সিস্টেমের সমস্ত সম্ভাব্য মৃত্যুদন্ড কার্যকর করা হয় যেখানে এটি সিস্টেমের ইনপুট থেকে আউটপুটগুলিতে একই ম্যাপিংয়ের ফলস্বরূপ যদি কোনও অবজেক্টের দুটি রাষ্ট্র একই হয়। এই এনকোলেজিং সিস্টেমটি একটি স্ব-অন্তর্ভুক্ত সিস্টেম হতে পারে, এটি তার পরিবেশের বাইরে স্বাধীন কার্যকর করতে সক্ষম; অন্যদিকে, কেউ এটিকে নিজেরাই প্রশ্ন করা বস্তুর মতো ছোট হতে দিতে পারে। যাই হোক না কেন, একটি গাণিতিক পদ্ধতির অর্থ হল রাষ্ট্রকে এর সমতুল্য শ্রেণি হিসাবে সংজ্ঞায়িত করা
' অভ্যন্তরীণ ' রাষ্ট্রটিকে উপস্থাপনের রাজ্য হিসাবে সংজ্ঞায়িত করা যেতে পারে। প্রথম প্রয়াসটি দৃশ্যত বৃত্তাকার তবে সম্ভবত সহায়ক: 'কোনও জিনিসের অভ্যন্তরীণ অবস্থা তার সদস্যদের অবস্থা'। এখানে তাত্পর্যপূর্ণ থেকে উপস্থাপনের উল্লেখযোগ্য দিকগুলি আলাদা করার জন্য আমাদের যত্ন নেওয়া দরকার: সর্বনিম্ন স্তরে, কোনও সামগ্রীর উপস্থাপনে অন্য বস্তুর ঠিকানাও অন্তর্ভুক্ত থাকতে পারে তবে এ জাতীয় ঠিকানার পরিবর্তনের বিষয়টি বিবেচনা করা কার্যকর হতে পারে না unlikely রাষ্ট্র পরিবর্তন হিসাবে। অন্যদিকে, ক্যোয়ারির ফলাফলের জন্য ক্যাশের অবস্থার পরিবর্তন, যখন এটি কার্যকরী রাষ্ট্রের (যেমন উপরে বর্ণিত) কোনও পার্থক্য রাখে না, পারফরম্যান্স পরীক্ষার বিষয়ে বিবেচনা করার সময় গুরুত্বপূর্ণ হবে।