এটি সত্যই নির্ভর করে। আপনার সাহায্যকারীরা যে মানগুলি পরিচালনা করে সেগুলি যদি আদিম হয় তবে প্যাটার নির্দেশিত হিসাবে স্থিতিশীল পদ্ধতিগুলি একটি ভাল পছন্দ।
যদি তারা জটিল হয় তবে সলাইড প্রয়োগ হয়, বিশেষত এস , আই এবং ডি ।
উদাহরণ:
class CookieJar {
function takeCookies(count:Int):Array<Cookie> { ... }
function countCookies():Int { ... }
function ressuplyCookies(cookies:Array<Cookie>
... // lot of stuff we don't care about now
}
class CookieFan {
function getHunger():Float;
function eatCookies(cookies:Array<Cookie>):Smile { ... }
}
class OurHouse {
var jake:CookieFan;
var jane:CookieFan;
var cookies:CookieJar;
function makeEveryBodyAsHappyAsPossible():Void {
//perform a lot of operations on jake, jane and the cookies
}
public function cookieTime():Void {
makeEveryBodyAsHappyAsPossible();
}
}
এটি আপনার সমস্যা সম্পর্কে হবে। আপনি করতে পারেন করা makeEveryBodyAsHappyAsPossible
একটি স্ট্যাটিক পদ্ধতি, প্রয়োজনীয় পরামিতি গ্রহণ করা হবে। আরেকটি বিকল্প হ'ল:
interface CookieDistributor {
function distributeCookies(to:Array<CookieFan>):Array<Smile>;
}
class HappynessMaximizingDistributor implements CookieDistributor {
var jar:CookieJar;
function distributeCookies(to:Array<CookieFan>):Array<Smile> {
//put the logic of makeEveryBodyAsHappyAsPossible here
}
}
//and make a change here
class OurHouse {
var jake:CookieFan;
var jane:CookieFan;
var cookies:CookieDistributor;
public function cookieTime():Void {
cookies.distributeCookies([jake, jane]);
}
}
OurHouse
কুকি বিতরণ নিয়মের জটিলতা সম্পর্কে এখন আর জানতে হবে না। এটি কেবল এখন অবশ্যই একটি অবজেক্ট, যা একটি নিয়ম প্রয়োগ করে। বাস্তবায়নটি কোনও অবজেক্টে বিমূর্ত হয়ে যায়, নিয়মের প্রয়োগ করা কার দায়বদ্ধ। এই বস্তুটি বিচ্ছিন্নভাবে পরীক্ষা করা যেতে পারে। OurHouse
একটি মাত্র উপহাস ব্যবহার করে পরীক্ষা করা যেতে পারে CookieDistributor
। এবং আপনি সহজেই কুকি বিতরণের নিয়ম পরিবর্তন করার সিদ্ধান্ত নিতে পারেন।
তবে, খেয়াল রাখবেন যে আপনি এটি অতিরিক্ত পরিমাণে না ঘটাচ্ছেন। উদাহরণস্বরূপ ৩০ টি শ্রেণির একটি জটিল ব্যবস্থা থাকা বাস্তবায়ন হিসাবে কাজ করে CookieDistributor
, যেখানে প্রতিটি শ্রেণি কেবল একটি ছোট্ট কাজ সম্পাদন করে, সত্যিকার অর্থে তা বোঝায় না। এসআরপি সম্পর্কে আমার ব্যাখ্যাটি হ'ল এটি কেবলমাত্র নির্দেশ দেয় না যে প্রতিটি শ্রেণীর কেবল একটি দায়িত্ব থাকতে পারে, তবে এটিও যে একটি একক দায়িত্ব একক শ্রেণীর দ্বারা পরিচালিত হওয়া উচিত।
আদিম বা বস্তুগুলির ক্ষেত্রে আপনি আদিমদের মতো ব্যবহার করেন (উদাহরণস্বরূপ স্থান, ম্যাট্রিক্স বা কোনও কিছুর পয়েন্ট উপস্থাপনকারী বস্তু), স্ট্যাটিক সহায়ক শ্রেণিগুলি প্রচুর অর্থবোধ করে। আপনার যদি পছন্দ থাকে এবং এটি সত্যিই বোধগম্য হয়, তবে আপনি প্রকৃতপক্ষে ডেটা উপস্থাপন করে ক্লাসে একটি পদ্ধতি যুক্ত করার বিষয়টি বিবেচনা করতে পারেন, উদাহরণস্বরূপ এটির Point
কোনও add
পদ্ধতি থাকার পক্ষে এটি বুদ্ধিমান । আবার, এটি অতিরিক্ত না।
সুতরাং আপনার সমস্যার উপর নির্ভর করে এটির বিভিন্ন উপায় রয়েছে।