অবজেক্ট ওরিয়েন্টড ডিজাইনের সাথে সম্পর্কিত অনেকগুলি হিউরিস্টিকস রয়েছে। উদাহরণস্বরূপ, "সমস্ত সদস্যের ভেরিয়েবলগুলি ব্যক্তিগত হওয়া উচিত", বা "গ্লোবাল ভেরিয়েবলগুলি এড়ানো উচিত" বা "রান টাইম টাইপ আইডেন্টিফিকেশন (আরটিটিআই) ব্যবহার করা বিপজ্জনক"। এই হিউরিস্টিকসের উত্স কী? এগুলি কী সত্য করে? তারা সবসময় সত্য? এই কলামটি নকশার নীতিটি অনুসন্ধান করে যা এই হিউরিস্টিকসকে অন্তর্ভুক্ত করে - মুক্ত-বদ্ধ নীতি।
যেমন ইভার জ্যাকবসন বলেছিলেন: "সমস্ত সিস্টেমগুলি তাদের জীবনচক্রের সময় পরিবর্তিত হয়। উন্নয়নশীল সিস্টেমগুলি প্রথম সংস্করণের চেয়ে দীর্ঘস্থায়ী হওয়ার প্রত্যাশার ক্ষেত্রে এটি অবশ্যই মনে রাখা উচিত ”" পরিবর্তনের মুখে স্থিতিশীল এবং এটি প্রথম সংস্করণের চেয়ে দীর্ঘতর হবে এমন ডিজাইন আমরা কীভাবে তৈরি করতে পারি? বার্ট্র্যান্ড মেয়ের 1988 সাল পর্যন্ত যখন আমাদের বিখ্যাত খোলামেলা নীতিটি তৈরি করেছিলেন তখন তিনি আমাদেরকে দিকনির্দেশনা দিয়েছিলেন। তাকে প্যারাফ্রেস করতে:
সফ্টওয়্যার এন্টি (ক্লাস, মডিউল, ফাংশনস, ইত্যাদি) খোলার জন্য খোলা উচিত, তবে পরিবর্তনের জন্য বন্ধ করা উচিত।
যখন কোনও প্রোগ্রামের একক পরিবর্তনের ফলে নির্ভরশীল মডিউলগুলিতে পরিবর্তনের ঝাঁকুনির সৃষ্টি হয়, তখন সেই প্রোগ্রামটি আমরা "খারাপ" ডিজাইনের সাথে সংযুক্ত করতে আসা অযাচিত বৈশিষ্ট্যগুলি প্রদর্শন করি। প্রোগ্রামটি ভঙ্গুর, অনমনীয়, প্রত্যাশিত এবং অবিশ্বাস্য হয়ে ওঠে। উন্মুক্ত-নীতিটি একে একে খুব সোজা পদ্ধতিতে আক্রমণ করে। এটি বলে যে আপনার এমন মডিউলগুলি ডিজাইন করা উচিত যা কখনই পরিবর্তন হয় না । যখন প্রয়োজনীয়তাগুলি পরিবর্তন হয়, আপনি নতুন কোড যুক্ত করে এই জাতীয় মডিউলগুলির আচরণটি প্রসারিত করুন, ইতিমধ্যে কাজ করা পুরানো কোড পরিবর্তন করে নয়।
বিবরণ
মুক্ত-বদ্ধ নীতি অনুসারে মডিউলগুলির দুটি প্রাথমিক বৈশিষ্ট্য রয়েছে।
- তারা "এক্সটেনশনের জন্য উন্মুক্ত" are
এর অর্থ মডিউলটির আচরণ প্রসারিত হতে পারে। অ্যাপ্লিকেশন পরিবর্তনের প্রয়োজনীয়তা হিসাবে বা নতুন অ্যাপ্লিকেশনগুলির চাহিদা পূরণের জন্য আমরা মডিউলটিকে নতুন এবং বিভিন্ন উপায়ে আচরণ করতে পারি।
- এগুলি "পরিবর্তনের জন্য বন্ধ" ”
এই জাতীয় মডিউলটির উত্স কোডটি চালিত। এটিতে উত্স কোড পরিবর্তন করার জন্য কাউকে অনুমতি নেই।
দেখে মনে হবে এই দুটি বৈশিষ্ট্য একে অপরের সাথে মতবিরোধের মধ্যে রয়েছে। মডিউলটির আচরণ প্রসারিত করার সাধারণ উপায়টি হল সেই মডিউলে পরিবর্তন করা make যে মডিউলটি পরিবর্তন করা যায় না তা সাধারণত একটি স্থির আচরণ বলে মনে করা হয়। এই দুটি বিরোধী গুণাবলী কীভাবে সমাধান করা যায়?
বিমূর্ততা মূল ...