简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器。
1、抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程)
class IOperation { public: IOperation() : m_nNuml(0), m_nNumr(0) {} virtual ~IOperation() {} virtual void SetNum(int nNuml = 0, int nNumr = 0) { m_nNuml = nNuml; m_nNumr = nNumr; } virtual int CalculateResult() = 0; protected: int m_nNuml, m_nNumr; };
注:m_nNuml, m_nNumr申明为protected,是为了让继承类中能够使用,同时又保持其访问的私有性,这和C#是不一样的地方
2、接口实现对象类——加法、减法类(乘除法就省略了,类似)
class COperation_Add : public IOperation { public: int CalculateResult() { return m_nNuml + m_nNumr; } }; class COperation_Dec : public IOperation { public: int CalculateResult() { return m_nNuml - m_nNumr; } };
<