对于策略模式
和继承
有相同的概念,因此我可以使用继承
来实现策略模式
,这听起来比策略模式
更简单和清晰。
策略模式
:
class IBase
{
public:
virtual void processAction(void *data) = 0; // pure virtual
}
class Worker: public IBase
{
public:
virtual void processAction(void *data)
{
// define logic
}
}
继承
:
class Base
{
public:
virtual void processAction(void *data) {}
}
class Worker: public Base
{
public:
virtual void processAction(void *data) override
{
// define logic
}
}
我的问题是它们之间有什么区别?或者我应该什么时候使用策略模式
或者继承
?
链接:策略模式
cache.useEvictionStrategy(new LifoStrategy());
- JB Nizet