设计模式之-工厂方法

 转自大话设计模式:

一、之前有了解过简单工厂模式。是以加减乘除的计算器为例子。

如果运用工厂方法模式完成:

1、一个抽象计算类 4个实现类(分别+ - * /)

一个工厂方法接口.用于创建计算类.该接口有4个实现的类。分别是 + - * / 4个工厂方法

 main方法模拟客户端:

之前的简单工厂得到计算类:    Operate operate = OperateFactory.getOperate("+"); 

 相当于简单工厂包含了必要的判断逻辑,根据客户端的变化实例化相关的类,对客户端来说,去掉了与具体产品的依赖。
运用工厂方法

二、以学雷锋照顾老人为例子。

一个雷锋类: 其他的不管是大学生学雷锋,还是社区志愿者学习雷锋,继承雷锋即可。

 

如果运用简单工厂来完成,那么这个时候只需要创建一个简单工厂即可。根据传入的参数不同,实例化对应的大学生或者志愿者

客户端的测试则是:

运用工厂方法实现:

抽象出创建雷锋的接口:

//创建大学生学雷锋的工厂

//创建志愿者学雷锋的工厂

运用工厂方法完成:

对比:

工厂方法是在简单工厂的基础上进一步抽象,在更改时,如果是使用的简单工厂方法,会有可能违反 开闭原则(可以增加,不能修改)。例如计算器要在case里面增加条件。

而使用工厂方法,不用做太多的修改,但是有个缺点就是每次都会新增一个子类,会增加额外开发量。后续在跟进抽象工厂模式


 
 
 

猜你喜欢

转载自www.cnblogs.com/sw85642734/p/9173172.html