【C++设计模式】工厂模式
最近打算总结一下设计模式(希望可以坚持写完...)。 设计模式大体上可以分为三种: 1)创建型(5种) 具体包括:工厂方法(包括简单工厂),抽象工厂,单例,建造者,原型 2)结构型模式(7种) 具体包括:适配器,桥接,组合,装饰器,代理,外观,享元 3)行为型模式(11种) 具体包括:策略模式,模版方法,命令,职责链,状态,观察者,中介者,迭代器,访问者,备忘录,解释器 创建型模式的技巧主要应用于创建对象的方式上。 结构性模式的技巧主要在于对不同类之间的组合以实现代码复用。 行为型模式的技巧在于不同类之间的相互作用及相互影响。 创建型模式 1)简单工厂模式 简单工厂一般只包含一个工厂,以及产品抽象类及其子类。 优点:实现了对象的创建与使用的分离。 缺点: 每增加一个产品都要修改原来的代码,且需要不断增加新的逻辑。 enum fruits{ APPLE, GRAPE } //果汁抽象类 class Juice{ public: virtual void show() = 0; } //果汁具体类,苹果汁 class AppleJuice : public Juice{ public: void show(){ cout<<"AppleJuice"<<endl; } } //果汁具体类,葡萄汁 class GrapeJuice : public Juice{ public: void