【发布时间】:2014-10-31 20:21:52
【问题描述】:
Strategy Pattern 和Inheritance 有相同的概念,所以我可以用Inheritance 实现Strategy Pattern,听起来它比Strategy Pattern更简单、更干净。
Startegy Pattern:
class IBase
{
public:
virtual void processAction(void *data) = 0; // pure virtual
}
class Worker: public IBase
{
public:
virtual void processAction(void *data)
{
// define logic
}
}
Inheritance:
class Base
{
public:
virtual void processAction(void *data) {}
}
class Worker: public Base
{
public:
virtual void processAction(void *data) override
{
// define logic
}
}
我的问题是它们之间的区别是什么?或者我什么时候应该使用Strategy Pattern 或Inheritance?
【问题讨论】:
标签: c++ inheritance design-patterns strategy-pattern object-oriented-analysis