背景:
王帅开了一家肉夹馍店;
目的:
最近推出了3款肉夹馍,王帅希望使用简单工厂模式实现3
!!!工厂类的类图
首先是简单工厂模式
一、产品类
RouJM.H(抽象产品类):
RoujmShow.H(具体产品类):
RoujmMaking.cpp(具体产品类实现):
二、工厂类
RoujmFactory.H(工厂类):
三、客户调用
简单工厂模式的优缺点:
(1)、缺点
1、工厂类的耦合性较强;
集中了所有产品的创建逻辑,模块与模块之间耦合在一个类里。 工厂崩、系统也崩;
2、违反“开放-关闭原则”
添加新产品、修改工厂逻辑;
(2)、优点(降低了客户与具体实现的耦合)
1、封装了细节,客户只需调用工厂接口,不必关心如何创建产品,只 顾使用产品;“依赖倒置原则”
2、更符合面向接口编程,而不是面向实现编程。
为克服上述缺点,改为工厂模式。。只需要改动工厂类。。
RoujmBfactory.h(抽象工厂类):
然后客户调用,变为下面这种语句,任何实现、创建的细节以及过程都封装起来而不让客户知道: