আমি দীর্ঘ সময় বিকাশকারী (আমার বয়স 49) তবে ওরিয়েন্টেড উন্নয়নের প্রতি আপত্তি জানাতে নতুন new বার্ট্র্যান্ড মেয়ারের আইফেল থেকে আমি ওও সম্পর্কে পড়ছি, তবে সত্যিই খুব কম ওও প্রোগ্রামিং করেছি।
বিষয়টি হ'ল ওও ডিজাইনের প্রতিটি বই একটি নৌকা, গাড়ি বা আমরা যে প্রায়শই সাধারণ জিনিস ব্যবহার করি তার উদাহরণ দিয়ে শুরু হয় এবং তারা গুণাবলী এবং পদ্ধতিগুলি যুক্ত করা শুরু করে এবং কীভাবে তারা বস্তুর অবস্থার মডেল করে এবং কী দিয়ে কী করা যায় তা ব্যাখ্যা করে start এটা।
সুতরাং তারা সাধারণত কিছু যায় যেমন "মডেলটির চেয়ে ভাল এটি প্রয়োগের মধ্যে যে বিষয়টিকে আরও ভালভাবে উপস্থাপন করে এবং এটি সমস্ত কার্যকর হয়"।
এখন পর্যন্ত এত ভাল, তবে, অন্যদিকে, আমি বেশ কয়েকজন লেখককে পেয়েছি যা "একটি শ্রেণীর কেবলমাত্র একটি পৃষ্ঠায় ফিট করা উচিত" এর মতো রেসিপি দেয় (আমি "কোন মনিটরের আকারের সাথে যুক্ত করব?" এখন যে আমরা চেষ্টা করি না কোড প্রিন্ট করতে!)।
উদাহরণস্বরূপ একটি PurchaseOrder
শ্রেণীর কথা বিবেচনা করুন, এটির একটি সীমাবদ্ধ রাষ্ট্রীয় মেশিন রয়েছে যার আচরণ এবং সংগ্রহগুলি নিয়ন্ত্রণ করে PurchaseOrderItem
, এখানে কাজের ক্ষেত্রে একটি যুক্তি হ'ল আমাদের PurchaseOrder
কিছু সাধারণ পদ্ধতি ব্যবহার করা উচিত , কিছু পদ্ধতি (একটি ডেটা ক্লাসের চেয়ে কিছুটা বেশি), এবং থাকতে হবে একটি PurchaseOrderFSM
"বিশেষজ্ঞ শ্রেণি" যা সীমাবদ্ধ রাষ্ট্রের মেশিনটির জন্য পরিচালনা করে PurchaseOrder
।
আমি বলব যে কোডিং হরর সম্পর্কিত জেফ অ্যাটউডের কোড গন্ধযুক্ত পোস্টটির "বৈশিষ্ট্য হিংসা" বা "অনুপযুক্ত ঘনিষ্ঠতা" শ্রেণিবিন্যাসের মধ্যে পড়ে । আমি এটাকে কেবল সাধারণ জ্ঞান বলি। আমি জারি করতে পারেন, অনুমোদন বা আমার বাস্তব ক্রয় আদেশ বাতিল, তারপর PurchaseOrder
বর্গ থাকা উচিত issuePO
, approvePO
এবং cancelPO
পদ্ধতি।
ও-এর কোণঠাসা হিসাবে আমি যে বয়সের নীতিগুলি বুঝতে পারি সেগুলি "সর্বাধিক সংহতি" এবং "সংযুক্তিকে ন্যূনতম করুন" দিয়ে যায় না?
এছাড়াও, এটি ক্লাসের রক্ষণাবেক্ষণের দিকে সহায়তা করে না?
PurchaseOrder
, আপনি শুধু আপনার পদ্ধতি নাম কি হতে পারেissue
,approve
এবংcancel
।PO
প্রত্যয় শুধুমাত্র নেতিবাচক মান যোগ করে।