Komut modelinin bu eski uygulamasına sahibim. Bu, tüm DIOperation uygulaması boyunca bir Bağlamdan geçmektir , ancak daha sonra, öğrenme ve öğrenme sürecinde (asla durmaz), bunun optimal olmadığını fark ettim. Ben de burada "ziyaret" gerçekten uygun olmadığını ve sadece karışık olduğunu düşünüyorum.
Aslında benim kodumu yeniden düzenlemeyi düşünüyorum, çünkü bir Komut başkaları hakkında hiçbir şey bilmemeli ve şu anda hepsi aynı anahtar / değer çiftlerini paylaşıyor. Hangi sınıfın hangi anahtar / değer çiftine sahip olduğunu ve bazen yinelenen değişkenlere yol açtığını korumak gerçekten zordur.
Kullanım örneği: diyelim ki CommandB , CommandA tarafından ayarlanan KullanıcıAdı gerektiriyor . CommandA, UserNameForCommandB = John anahtarını ayarlamalı mı? Yoksa ortak bir UserName = John anahtar / değer paylaşmalı mı? KullanıcıAdı üçüncü bir Komut tarafından kullanılıyorsa ne olur?
Bu tasarımı nasıl geliştirebilirim? Teşekkürler!
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;
};