0
我看到的所有戰略模式參考都顯示混凝土沒有狀態(成員數據)。但是,我想知道它是否可以,有時可能有用,例如:策略模式允許狀態嗎?
class bark_strategy {
public:
virtual void execute() = 0;
};
class bowwow : public bark_strategy {
public:
bowwow(unsigned int t) : m_tired(t), m_count(0) {}
virtual void execute() override
{
if (m_count < m_tired)
{
++m_count;
std::cout << "bowwowwowwowwowwowwow..." << std::endl;
}
else
{
std::cout << "bow..." << std::endl;
}
}
private:
unsigned int m_tired;
unsigned int m_count;
};
策略模式是否允許狀態?如果沒有,有什麼缺點?