简单工厂和工厂方法模式

背景:

王帅开了一家肉夹馍店;

目的:

最近推出了3款肉夹馍,王帅希望使用简单工厂模式实现3

!!!工厂类的类图

简单工厂和工厂方法模式


首先是简单工厂模式

一、产品类

RouJM.H(抽象产品类):

简单工厂和工厂方法模式


 RoujmShow.H(具体产品类):

简单工厂和工厂方法模式


 RoujmMaking.cpp(具体产品类实现):

简单工厂和工厂方法模式


二、工厂类

 RoujmFactory.H(工厂类):

简单工厂和工厂方法模式

简单工厂和工厂方法模式


三、客户调用

简单工厂和工厂方法模式

简单工厂模式的优缺点:

(1)、缺点
1、工厂类的耦合性较强;
       集中了所有产品的创建逻辑,模块与模块之间耦合在一个类里。 工厂崩、系统也崩;
2、违反“开放-关闭原则”
       添加新产品、修改工厂逻辑;


(2)、优点(降低了客户与具体实现的耦合)
1、封装了细节,客户只需调用工厂接口,不必关心如何创建产品,只    顾使用产品;“依赖倒置原则”
2、更符合面向接口编程,而不是面向实现编程。


为克服上述缺点,改为工厂模式。。只需要改动工厂类。。

RoujmBfactory.h(抽象工厂类):

简单工厂和工厂方法模式

简单工厂和工厂方法模式

然后客户调用,变为下面这种语句,任何实现、创建的细节以及过程都封装起来而不让客户知道:

简单工厂和工厂方法模式