অন্তর্বাহ
যদি কোনও কিছু বিভিন্ন সামগ্রীর (গুচ্ছ সংখ্যক সম্মিলিত সংখ্যক সংখ্যক) গোছা ব্যবহার করে তবে সেই জিনিসগুলির কোনও পরিবর্তন হলে তা ভাঙার প্রবণতা হতে পারে।
অস্থিরতা = 1
বহির্মুখ
যদি কিছু কিছু জিনিস বিভিন্ন গুচ্ছ দ্বারা ব্যবহার করা হয় (প্রচুর পরিমাণে অভিজাত কাপলিং), তবে এটি পরিবর্তিত হলে এটি অনেক কিছু ভাঙার প্রবণতা হতে পারে।
অস্থিরতা = 0
স্থায়িত্ব
"স্থিতিশীলতা" এর মার্টিনের সংজ্ঞাটি "পরিবর্তন করা শক্ত" এবং "পরিবর্তনের কয়েকটি কারণ থাকার" মধ্যে একটি বহিরাগত মিশ্রণ। তবুও তার অস্থিরতা মেট্রিক কেবল "পরিবর্তনের অসুবিধা" বর্ণনা করে। "পরিবর্তনের কারণগুলি" এর সাথে এমন অনেকগুলি কারণ রয়েছে যা সহজেই গণনা করা যায় না, যেমন আপনার ইন্টারফেসগুলি যথাযথভাবে নকশা করা, অ্যাবস্ট্রাকশনের একটি উপযুক্ত স্তরে, এবং ব্যবহারকারীর শেষের প্রয়োজনীয়তাগুলি আরও পরিষ্কারভাবে বোঝার মতো।
কম অভিজাত কাপলিংয়ের সাথে এত উচ্চ অভিজাত মিলনের ফলে স্থায়িত্ব পাওয়া যায় (পরিবর্তনের পক্ষে কিছু কঠিন কারণ এটি একগুচ্ছ পদার্থ ভেঙে দেবে), বিপরীত ফলশ্রুতি অস্থিরতা হয় (যেহেতু এটি সহজেই পরিবর্তিত হতে পারে যেহেতু এটি একগুচ্ছ জিনিস ভাঙবে না) ।
প্রচুর পরিমাণে অ্যাফেরেন্ট কাপলিংস এমন একটি সূচক হতে পারে যা আপনার ডিজাইনে ফোকাসের অভাব রয়েছে - এটি সম্পূর্ণ সামগ্রীর বিভিন্ন জিনিস ব্যবহার করছে যাতে সম্ভবত এটির একটি পরিষ্কার, একক দায়িত্বের অভাব রয়েছে।
প্রচুর পরিমাণে অভিজাত কাপলিংগুলিকে প্রাথমিকভাবে খুব ভাল জিনিস হিসাবে ব্যাখ্যা করা যেতে পারে, কারণ এটি নির্দেশ করে যে আপনার নকশাটি ব্যাপকভাবে ব্যবহৃত হচ্ছে (পুনরায়)। তবুও এটি খারাপ হবে যদি আপনি প্রায়শই সমস্ত কিছু ভেঙে দেয় এমন উপায়ে ডিজাইন পরিবর্তন করার লোভ বোধ করেন। সুতরাং বিপুল সংখ্যক অভিজাত কাপলিংয়ের সাথে এই ধরনের প্যাকেজগুলির "" পরিবর্তনের কয়েকটি বা কোনও কারণ নেই "হওয়া দরকার। নকশাগুলি পরিবর্তনের কারণ না থাকার আদর্শ অর্থে স্থিতিশীল হওয়া উচিত, কারণ এগুলি একইভাবে পরিবর্তন করা খুব কঠিন হবে be
স্থিতিশীল বিমূর্তি নীতি
নির্ভরতা বিপর্যয়ের মতো ধারণা (যা প্রাকৃতিকভাবে নির্ভরতা ইনজেকশনের জন্য আহ্বান জানায়) এবং এসএপি (স্থিতিশীল বিমূর্তি নীতি) সমস্তই নির্ভর করে যে নির্ভরতা বিমূর্ততার দিকে প্রবাহিত হয়। এবং "পরিবর্তনের কয়েকটি কারণ" থাকার প্রসঙ্গে "স্থিতিশীলতা" বিবেচনা করার কেন একটি সহজ কারণ রয়েছে। একটি বিমূর্ত ইন্টারফেসে কোনও কংক্রিটের বিশদ উল্লেখ করে না, এটি কেবল "কী জিনিস" পরিবর্তে "কী করা উচিত" তার দিকে দৃষ্টি নিবদ্ধ করে এবং এর পরিবর্তনের কম কারণ রয়েছে। আমাদের মাদারবোর্ডের ত্বকিত গ্রাফিক্স পোর্টের (অ্যাবস্ট্রাক্ট ইন্টারফেস) জিপিইউ যে এটিতে প্লাগ হয় তার চেয়ে কোনও নকশা পরিবর্তন করার কম কারণ রয়েছে (একটি কংক্রিট বিশদ)।
পুনরায় ব্যবহারযোগ্যতা বনাম পুনরায় ব্যবহার use
আমার নিজের একটি ব্যক্তিগত ধরণের মেট্রিক যদি মার্টিনের সাথে কিছুটা সংঘর্ষের প্রস্তাব দেয় তবে এই ধারণাটি আমি ধাক্কা দিতে চাই যে সর্বাধিক পুনঃব্যবহারযোগ্য গ্রন্থাগারগুলি অন্য কোডটি ন্যূনতমভাবে পুনরায় ব্যবহার করতে চাইবে। এটি অস্থিরতাটিকে কঠোর 0 এর দিকে ঠেলে দেয় change এটি পরিবর্তন করার নূন্যতম কারণ থাকার ব্যবহারিক কারণে, তবে মোতায়েনের সবচেয়ে সহজ লাইব্রেরিও প্রচার করে। এক ডজন-সাধারণ বিভিন্ন গ্রন্থাগারের উপর নির্ভর করে একটি সাধারণ-উদ্দেশ্য, বহুল ব্যবহৃত লাইব্রেরির পরিবর্তনের অনেকগুলি কারণ রয়েছে, পাশাপাশি একটি বিশ্রী-বান্ডিল বিতরণ যা মোতায়েন করা কঠিন। এখানে পার্থক্যটি হ'ল আমার ক্ষেত্রে "পরিবর্তনের কারণগুলি" বাস্তবায়ন পর্যন্ত প্রসারিত, কারণ এটি একটি গ্রন্থাগার-ভিত্তিক দৃষ্টিভঙ্গি থেকে আসে যা গ্রন্থাগারের স্থিতিশীল সংস্করণগুলি প্রকাশ করতে চায়। মার্টিন বাস্তবায়নটিকে খুব আলাদা অংশ হিসাবে ছাড় দিতে পারে,
একটি বিতরণ দৃষ্টিকোণ থেকে, বাস্তবায়ন এবং ইন্টারফেস একসাথে অস্পষ্টভাবে স্থিতিশীল বা অস্থির লাইব্রেরিতে ব্যবহারকারী নির্ভরতা অর্জন করতে পারে। একটি ইন্টারফেস দৃষ্টিকোণ থেকে, শুধুমাত্র ইন্টারফেস ব্যবহার করা হয় এবং সম্পর্কিত বাস্তবায়ন বিবরণ সম্পূর্ণ পৃথক।