একক দায়িত্ব এমন কিছু নাও হতে পারে যা একটি একক ক্রিয়াকলাপ সম্পাদন করতে পারে।
class Location {
public int getX() {
return x;
}
public int getY() {
return y;
}
}
এই শ্রেণি একক দায়িত্বের নীতিটি ভঙ্গ করতে পারে। এর দুটি ফাংশন নেই বলে নয়, তবে কোডটির জন্য getX()
এবং getY()
বিভিন্ন স্টেকহোল্ডারকে সন্তুষ্ট করতে হয় যা পরিবর্তনের দাবি করতে পারে। ভাইস প্রেসিডেন্ট মিঃ এক্স যদি একটি মেমো প্রেরণ করেন যে সমস্ত সংখ্যা ভাসমান পয়েন্ট সংখ্যা হিসাবে প্রকাশ করা হবে এবং অ্যাকাউন্টিং ডিরেক্টর মিসেস ওয়াই জোর দিয়ে বলেছেন যে তার বিভাগের পর্যালোচনাগুলি যে সংখ্যাটি মিঃ এক্স ভালভাবে বিবেচনা না করেই পূর্ণসংখ্যায় থাকবে তবে এই শ্রেণীর আরও ভাল থাকতে হবে এটি কার জন্য দায়ী সে সম্পর্কে একটি ধারণা, কারণ বিষয়গুলি বিভ্রান্ত হওয়ার পথে।
যদি এসআরপি অনুসরণ করা হয় তবে এটি স্পষ্ট হবে যদি অবস্থান শ্রেণি মিস্টার এক্স এবং তার গ্রুপের কাছে প্রকাশিত হয় এমন বিষয়ে অবদান রাখে। ক্লাসটি কী জন্য দায়বদ্ধ তা পরিষ্কার করুন এবং আপনি জানেন যে কোন নির্দেশিকা এই শ্রেণীর উপর প্রভাব ফেলে। যদি তারা উভয়ই এই শ্রেণিকে প্রভাবিত করে তবে পরিবর্তনের প্রভাবকে হ্রাস করার জন্য এটি খারাপভাবে নকশাকৃত হয়েছিল। "একটি শ্রেণীর পরিবর্তনের একমাত্র কারণ থাকতে হবে" এর অর্থ এই নয় যে পুরো শ্রেণি কেবল কখনও একটি ছোট কাজ করতে পারে। এর অর্থ এটি আমার ক্লাসটি দেখতে সক্ষম হওয়া উচিত নয় এবং মিস্টার এক্স এবং মিসেস ওয়াই উভয়েরই এই শ্রেণিতে আগ্রহ রয়েছে।
এই জাতীয় জিনিস ছাড়া অন্য। না, একাধিক পদ্ধতি ঠিক আছে। কেবল এটিকে একটি নাম দিন যা ক্লাসের অন্তর্ভুক্ত কী পদ্ধতিগুলি এবং কোনটি নয় তা পরিষ্কার করে দেয়।
চাচা ববের এসআরপি কোঁকশির আইনের চেয়ে কনওয়ের আইন সম্পর্কে বেশি । চাচা বব ক্লাস নয় ফাংশনে কার্লির আইন প্রয়োগ করার পক্ষে (একটি কাজ করুন) সমর্থন করেন। একসাথে পরিবর্তনের জন্য মিশ্র কারণগুলির বিরুদ্ধে এসআরপি সতর্ক করে। কনওয়ের আইন বলছে যে কোনও সংস্থার তথ্য কীভাবে প্রবাহিত হবে তা সিস্টেমটি অনুসরণ করবে। এটি এসআরপি অনুসরণ করার দিকে পরিচালিত করে কারণ আপনি কখনই শুনবেন না সে সম্পর্কে আপনার যত্ন নেই।
"একটি মডিউল একজনের জন্য দায়বদ্ধ হওয়া উচিত, এবং কেবল একজনই, অভিনেতা"
রবার্ট সি মার্টিন - ক্লিন আর্কিটেকচার
লোকেরা সুযোগকে সীমাবদ্ধ করার জন্য প্রতিটি কারণেই এসআরপি হতে চায়। এসআরপির চেয়ে সুযোগ সীমিত করার আরও বেশি কারণ রয়েছে। আমি আরও ক্লাসটিকে এমন বিমূর্ততা বলে জোর দিয়ে সীমাবদ্ধ রাখি যাতে একটি নাম নিতে পারে যা ভিতরে খুঁজলে নিশ্চিত হয় যে আপনাকে অবাক করে না ।
আপনি ক্লাসে কোঁকড়ানো আইন প্রয়োগ করতে পারেন। আঙ্কেল বব যে বিষয়ে কথা বলেন আপনি তার বাইরে আছেন তবে আপনি এটি করতে পারেন। আপনি যেখানে ভুল হয়ে গেছেন তা যখন আপনি ভাবতে শুরু করেন তার অর্থ একটি ফাংশন। এটাই ভাবার মতো যে পরিবারের কোনও একটি সন্তান হওয়া উচিত। একাধিক সন্তানের জন্ম হওয়া পরিবার হতে বাধা দেয় না।
যদি আপনি কোনও শ্রেণিতে কোঁকড়ানো আইন প্রয়োগ করেন তবে ক্লাসের সমস্ত কিছু একক একত্রীকরণ ধারণা সম্পর্কে হওয়া উচিত। এই ধারণাটি বিস্তৃত হতে পারে। ধারণা অধ্যবসায় হতে পারে। কিছু লগিং ইউটিলিটি ফাংশন যদি সেখানে থাকে তবে সেগুলি স্পষ্টত স্থানের বাইরে। মিস্টার এক্স এই কোডটি সম্পর্কে যত্নশীল একমাত্র কিনা তা বিবেচ্য নয়।
এখানে প্রয়োগ করার জন্য ক্লাসিক নীতিটিকে কনসার্নস পৃথকীকরণ বলা হয় । আপনি যদি আপনার সমস্ত উদ্বেগ পৃথক করেন তবে যুক্তি দেওয়া যেতে পারে যে কোনও এক জায়গায় যা রয়েছে তা হ'ল উদ্বেগ। ১৯৯১ সালে মুভি সিটি স্লিকাররা আমাদের কোঁকড়া চরিত্রটির সাথে পরিচয় করানোর আগে আমরা এই ধারণাটি বলেছিলাম।
্রফ. এটি ঠিক যে চাচা বব একটি দায়বদ্ধতা বলে উদ্বেগ নয় calls তাঁর প্রতি একটি দায়িত্ব হ'ল আপনি যে বিষয়টির দিকে মনোযোগ দিন। এটি এমন কিছু যা আপনাকে পরিবর্তন করতে বাধ্য করতে পারে। আপনি একটি উদ্বেগের দিকে মনোনিবেশ করতে পারেন এবং এখনও এমন কোড তৈরি করতে পারেন যা বিভিন্ন এজেন্ডাসহ বিভিন্ন গোষ্ঠীর জন্য দায়বদ্ধ।
সম্ভবত আপনি এটি সম্পর্কে চিন্তা করবেন না। ফাইন। "এক কাজ করতে" ধরে রাখা আপনার সমস্ত ডিজাইনের দুরবস্থার সমাধান করবে এই ভেবে যে "একটি জিনিস" কী হতে পারে তা কল্পনা করার অভাব দেখায়। সুযোগ সীমিত করার আরেকটি কারণ হ'ল সংগঠন। আপনার কাছে সমস্ত কিছুতে একটি জঞ্জাল ড্রয়ার না পাওয়া পর্যন্ত আপনি "" একটি জিনিস "এর অন্য" এক জিনিস "এর মধ্যে অনেকগুলি বাসা বেঁধতে পারেন। আমি যে স্বপ্ন করেছি আগে
অবশ্যই সুযোগ সীমাবদ্ধ করার ক্লাসিক ওওপি কারণ হ'ল শ্রেণীর মধ্যে ব্যক্তিগত ক্ষেত্র রয়েছে এবং তারপরে সেই তথ্যটি চারপাশে ভাগ করে নেওয়ার জন্য, আমরা এমন প্রতিটি পদ্ধতি রাখি যেখানে সেই ডেটাটি ক্লাসে রাখা হয় যেখানে তারা ব্যক্তিগতভাবে ডেটা ব্যবহার করতে পারে। স্কোপ সীমাবদ্ধ হিসাবে ব্যবহার করার জন্য অনেকে এটিকে খুব সীমিত বলে মনে করেন কারণ একসাথে থাকা প্রতিটি পদ্ধতি একই ক্ষেত্রটি একইভাবে ব্যবহার করে না। আমি নিশ্চিত করতে চাই যে যে কোনও ধারণা যা উপাত্তকে একত্রিত করে একই পদ্ধতিগুলি একত্রিত করে যা পদ্ধতিগুলি একত্রিত করে।
ক্রিয়ামূলক এই তাকান যে a.f(x)
এবং a.g(x)
চ কেবল হয় একটি (x) এর এবং ছ একটি (x) এর। দুটি ফাংশন নয় বরং একসঙ্গে পৃথক পৃথক ফাংশনের জোড়ের ধারাবাহিকতা। দ্য a
এমনকি এটি ডাটা আছে নেই। এটি সহজেই হতে পারে আপনি কীভাবে জানেন f
এবং কোনটি g
প্রয়োগ করতে চলেছেন। একসাথে পরিবর্তিত ক্রিয়াকলাপগুলি একত্রে অন্তর্ভুক্ত। এটা ভাল পুরানো বহুবাদিতা।
সুযোগ সীমিত করার জন্য এসআরপি হ'ল বহু কারণগুলির মধ্যে একটি। এটি একটি ভাল। তবে একমাত্র নয়।