《大话设计模式》观后总结1--简单工厂模式与工厂方法模式
2017-10-13 16:59
225 查看
1.简单工厂模式
基类(接口)--
定义功能(如计算器,需要两个参数,两个初始化参数的方法,一个返回两个数计算之后的值的方法GetResult());
具体实现类--
继承基类(实现接口),重写返回两个数计算之后的值的方法GetResult(),以实现不同的计算方式(如加减乘除);
工厂类
声明基类(接口),根据传进来的参数实例化相应的具体实现类。
返回实例化后的对象。
--上转型(接口回调);分类声明(接口声明),子类实例化(实现类实例化)。
客户端
1.声明基类(如运算类)
2.给工厂类传参(如“+”)
3.工厂类根据参数判断实例化相应的具体实现类,返回实例化的对象
4.根据工厂类返回的对象实例化开始声明的基类。
5.调用实例化之后的对象进行相应的操作。
优点
工厂类中包含了必要的逻辑判断,根据客户端的选择条件,动态实例化相关的类。对于客户端来说,去除了与具体产品的依赖。
2.工厂方法模式
-- 定义一个用于创建对象的接口,子类决定具体实例化哪个类;
使类的实例化延迟到工厂类的子类。
基础工厂类--只有创建对象的抽象方法。
具体工厂类--继承基础工厂类,实例化不同的对象。
客户端只需要实例化不同的具体工厂,就能用该工厂对象实例化不同的产品对象。不需要给工厂对象传递参数判断需要实例化的产品。
3.简单工厂--工厂模式相比较
工厂方法模式克服了简单工厂模式违背开发-封闭原则的缺点,保持了封装对象创建过程的优点。
工厂方法模式是简单工厂模式的进一步抽象和推广。
工厂方法缺点:每加一个产品,就需要加一个产品工厂的类,增加了开发量。
基类(接口)--
定义功能(如计算器,需要两个参数,两个初始化参数的方法,一个返回两个数计算之后的值的方法GetResult());
具体实现类--
继承基类(实现接口),重写返回两个数计算之后的值的方法GetResult(),以实现不同的计算方式(如加减乘除);
工厂类
声明基类(接口),根据传进来的参数实例化相应的具体实现类。
返回实例化后的对象。
--上转型(接口回调);分类声明(接口声明),子类实例化(实现类实例化)。
客户端
1.声明基类(如运算类)
2.给工厂类传参(如“+”)
3.工厂类根据参数判断实例化相应的具体实现类,返回实例化的对象
4.根据工厂类返回的对象实例化开始声明的基类。
5.调用实例化之后的对象进行相应的操作。
优点
工厂类中包含了必要的逻辑判断,根据客户端的选择条件,动态实例化相关的类。对于客户端来说,去除了与具体产品的依赖。
2.工厂方法模式
-- 定义一个用于创建对象的接口,子类决定具体实例化哪个类;
使类的实例化延迟到工厂类的子类。
基础工厂类--只有创建对象的抽象方法。
具体工厂类--继承基础工厂类,实例化不同的对象。
客户端只需要实例化不同的具体工厂,就能用该工厂对象实例化不同的产品对象。不需要给工厂对象传递参数判断需要实例化的产品。
3.简单工厂--工厂模式相比较
工厂方法模式克服了简单工厂模式违背开发-封闭原则的缺点,保持了封装对象创建过程的优点。
工厂方法模式是简单工厂模式的进一步抽象和推广。
工厂方法缺点:每加一个产品,就需要加一个产品工厂的类,增加了开发量。
相关文章推荐
- 简单工厂模式和工厂方法模式及实例(总结)
- 大话设计模式-简单工厂模式
- 简单工厂模式与工厂方法模式
- 大话设计模式1 简单工厂模式 的java代码实现
- 简单工厂模式与工厂方法模式
- Java设计模式(一) 设计模式初探——简单工厂和工厂方法模式
- 大话设计模式-简单工厂模式
- 工厂模式(简单工厂模式, 工厂方法模式, 抽象工厂模式)二
- 大话设计模式-简单工厂模式
- 常用Java设计模式系列(5)- 简单工厂、工厂方法模式和抽象工厂模式
- 简要学习简单工厂模式与工厂方法模式
- 简单工厂模式、工厂方法模式和抽象工厂模式-设计模式学习
- 《大话设计模式》之--第1章 代码无错就是优?----简单工厂模式
- 简单工厂模式、工厂方法模式和抽象工厂模式小结
- 大话设计模式c++实现之一 简单工厂模式
- 大话设计模式学习篇--简单工厂模式
- 大话设计模式---简单工厂模式
- 大话设计模式--简单工厂模式
- 简单工厂模式VS.工厂方法模式
- 5种创建型模式之:简单工厂和工厂方法模式