কমান্ড প্যাটার্নটির আমার এই পুরনো বাস্তবায়ন রয়েছে। এটি সমস্ত ডিআইওএপরেশন বাস্তবায়নের মধ্য দিয়ে একটি প্রসঙ্গ পাস করার মতো বিষয় , তবে আমি পরে বুঝতে পেরেছি, শেখার এবং শেখার প্রক্রিয়াতে (যা কখনও থামে না), এটি অনুকূল নয়। আমি আরও মনে করি যে এখানে "দেখা" সত্যই ফিট করে না এবং কেবল বিভ্রান্ত হয়।
আমি আসলে আমার কোডটি রিফ্যাক্টর করার কথা ভাবছি, কারণ কমান্ডের অন্যদের সম্পর্কে কিছুই জানা উচিত নয় এবং এই মুহুর্তে তারা সবাই একই কী-মান জোড় ভাগ করে দেয়। কোন শ্রেণীর কোন কী-মূল্যের মালিকানা বজায় রাখা সত্যিই কঠিন, কখনও কখনও নকল ভেরিয়েবলের দিকে পরিচালিত করে।
ব্যবহারের ক্ষেত্রে উদাহরণ: ধরা যাক কমান্ডবিতে ব্যবহারকারীর নাম প্রয়োজন যা কমান্ডএ দ্বারা সেট করা আছে । কমান্ডএ কী কী ব্যবহারকারীনামফর্মকম্যান্ডবি = জনকে সেট করতে হবে ? অথবা তাদের একটি সাধারণ ব্যবহারকারীর নাম = জন কী-মানটি ভাগ করা উচিত ? যদি ইউজারনেম তৃতীয় কমান্ড ব্যবহার করে তবে কী হবে?
আমি কীভাবে এই নকশাটি উন্নত করতে পারি? ধন্যবাদ!
class DIParameters {
public:
/**
* Parameter setter.
*/
virtual void setParameter(std::string key, std::string value) = 0;
/**
* Parameter getter.
*/
virtual std::string getParameter(std::string key) const = 0;
virtual ~DIParameters() = 0;
};
class DIOperation {
public:
/**
* Visit before performing execution.
*/
virtual void visitBefore(DIParameters& visitee) = 0;
/**
* Perform.
*/
virtual int perform() = 0;
/**
* Visit after performing execution.
*/
virtual void visitAfter(DIParameters& visitee) = 0;
virtual ~DIOperation() = 0;
};