এখানে সম্পত্তি এবং আমার পাল্টা-যুক্তি সম্পর্কিত কিছু আর্গুমেন্ট রয়েছে:
লেখক এবং সেটটার পদ্ধতি লেখার চেয়ে ব্যবহার করা সহজ
গেটর এবং সেটার পদ্ধতির জোড়গুলি একটি কোড গন্ধ। এগুলি লেখার পক্ষে আরও সহজ করা স্ক্যানট্রন ফর্ম ব্যবহার করে এবং সমস্ত সি'র মধ্যে পূরণ করে গণিত পরীক্ষায় ব্যর্থ হওয়া সহজ করার মতো। অধ্যবসায়ের জন্য কেবলমাত্র স্থিতিযুক্ত অবজেক্টগুলি গিটার / সেটার ব্যবহার করা উচিত নয় এবং অধ্যবসায়ের সময় অপরিবর্তনীয় বস্তু তৈরি করা উচিত।
কোনও সামগ্রীর গ্রাহকের পক্ষে যা গুরুত্বপূর্ণ তা হ'ল এটি কী করে তা নয় এটি কীভাবে তা করে। এর আচরণ এটি যা করে; এটি তার কাজটি করে। যদি আপনি নিজেকে কোনও অবজেক্টের অবস্থা সম্পর্কে যত্নবান হন (অধ্যবসায় বাদে, যদিও এটি ওও ভেঙে দেয়) তবে আপনি কেবল ওওপি করছেন না এবং এর সুবিধাগুলি হারাচ্ছেন না।
তারা ভোক্তাদের কর্মক্ষমতা সম্পর্কে মোটামুটি ইঙ্গিত দেয়
এটি এমন কোনও যা ভবিষ্যতে পরিবর্তিত হতে পারে যে কোনও প্রদত্ত সম্পত্তির জন্য। ধরুন 1.0 এর রিলিজে, প্রপার্টি এক্স অ্যাক্সেস করলে কেবল একটি ক্ষেত্র ফিরে আসে। প্রকাশের ১.৫ তে, ক্ষেত্রটি শূন্য হলে, প্রপার্টিএক্স একটি নাল অবজেক্ট প্যাটার্নটি একটি নতুন নাল অবজেক্ট তৈরি করতে ব্যবহার করে। রিলিজ ২.০ এ, ক্ষেত্রটি প্রপার্টিএক্স-এ প্রাপ্ত পদ্ধতি দ্বারা আরও বৈধ হয়ে উঠছে।
সম্পত্তি যত বেশি জটিল হয়ে ওঠে, কোনও সম্পত্তি ব্যবহারের পারফরম্যান্সের ইঙ্গিতটি কম-বেশি সত্যবাদী বলে মনে হয়।
তারা সরকারী ক্ষেত্রের চেয়ে ভাল're
এটা সত্য. তবে পদ্ধতিগুলিও তাই।
তারা কোনও পদ্ধতির চেয়ে কোনও অবজেক্টের মৌলিকভাবে পৃথক দিক উপস্থাপন করে এবং অবজেক্টের সমস্ত গ্রাহককে এটির যত্ন নেওয়া উচিত
আপনি কি নিশ্চিত যে উপরের দুটি বিবৃতি সত্য?
তারা টাইপ করা সহজ, মানুষ
অবশ্যই, টাইপিং টাইপিংয়ের myObject.Length
চেয়ে সহজ myObject.Length()
, তবে এটি কি সামান্য সিনট্যাকটিক চিনির সাথে স্থির করা যায় না?
সম্পত্তি পরিবর্তে পদ্ধতি ব্যবহার করবেন কেন?
কোনও পারফরম্যান্সের গ্যারান্টি নেই। পদ্ধতিটি আরও জটিল হয়ে উঠলেও এপিআই সত্যবাদী থাকবে। গ্রাহক যদি তাদের পারফরম্যান্স ইস্যুতে চালিত হয় এবং ওয়ার্ড-অফ-এপিআইয়ের উপর নির্ভর না করে তবে তাদের কোডটি তাদের প্রোফাইল করতে হবে।
ভোক্তা সম্পর্কে চিন্তাভাবনা কম। এই সম্পত্তি একটি সেটর আছে? একটি পদ্ধতি নিশ্চিত না।
গ্রাহক সঠিক ওওপি মানসিকতা থেকে চিন্তা করছেন। কোনও এপিআইর গ্রাহক হিসাবে আমি কোনও জিনিসের আচরণের সাথে ইন্টারঅ্যাক্ট করতে আগ্রহী। আমি যখন এপিআইতে বৈশিষ্ট্যগুলি দেখি তখন দেখতে অনেকটা রাজ্যের মতো লাগে। প্রকৃতপক্ষে, বৈশিষ্ট্যগুলি যদি খুব বেশি করে, তবে তাদের সম্পত্তিও হওয়া উচিত নয়, তাই সত্যিকার অর্থে, কোনও এপিআই এর বৈশিষ্ট্যগুলি ভোক্তাদের কাছে উপস্থিত হওয়ার সাথে সাথে।
এপিআই এর প্রোগ্রামার রিটার্ন মান সহ পদ্ধতি সম্পর্কে আরও গভীরভাবে চিন্তা করবে এবং যদি সম্ভব হয় তবে এই পদ্ধতিগুলিতে অবজেক্টের অবস্থার পরিবর্তন করা এড়াতে পারে। প্রশ্নগুলি থেকে আদেশগুলি পৃথক করা যেখানেই সম্ভব কার্যকর করা উচিত।
সুতরাং আমি আপনাকে জিজ্ঞাসা, কেন পদ্ধতির পরিবর্তে সম্পত্তি ব্যবহার? এমএসডিএন- এর বেশিরভাগ পয়েন্টগুলি কোড এবং তাদের মধ্যে গন্ধযুক্ত এবং এগুলি কোনও বৈশিষ্ট্য বা পদ্ধতিতে অন্তর্ভুক্ত নয়।
(সিকিউএস সম্পর্কে চিন্তাভাবনা করার পরে এই চিন্তাগুলি আমার কাছে এসেছিল))
type GetFoo() void SetFoo()
দশ হাজার বার লিখে থাকেন তবে তা সঠিকভাবে বোঝায় । আমার সমস্ত সময় সি # কোড লেখার সময় আমি কোনও সম্পত্তি দ্বারা কখনও বিভ্রান্ত হইনি।