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