《大话设计模式》观后总结1--简单工厂模式与工厂方法模式

来源:互联网 发布:大数据信息贩卖 编辑:程序博客网 时间:2024/05/16 14:43

1.简单工厂模式

基类(接口)-- 

定义功能(如计算器,需要两个参数,两个初始化参数的方法,一个返回两个数计算之后的值的方法GetResult());

具体实现类--

继承基类(实现接口),重写返回两个数计算之后的值的方法GetResult(),以实现不同的计算方式(如加减乘除);

工厂类

声明基类(接口),根据传进来的参数实例化相应的具体实现类。

返回实例化后的对象。

--上转型(接口回调);分类声明(接口声明),子类实例化(实现类实例化)。

客户端

1.声明基类(如运算类)

2.给工厂类传参(如“+”)

3.工厂类根据参数判断实例化相应的具体实现类,返回实例化的对象

4.根据工厂类返回的对象实例化开始声明的基类。

5.调用实例化之后的对象进行相应的操作。


优点

工厂类中包含了必要的逻辑判断,根据客户端的选择条件,动态实例化相关的类。对于客户端来说,去除了与具体产品的依赖。


2.工厂方法模式

-- 定义一个用于创建对象的接口,子类决定具体实例化哪个类;

    使类的实例化延迟到工厂类的子类。


基础工厂类--只有创建对象的抽象方法。

具体工厂类--继承基础工厂类,实例化不同的对象。

客户端只需要实例化不同的具体工厂,就能用该工厂对象实例化不同的产品对象。不需要给工厂对象传递参数判断需要实例化的产品。



3.简单工厂--工厂模式相比较

工厂方法模式克服了简单工厂模式违背开发-封闭原则的缺点,保持了封装对象创建过程的优点。

工厂方法模式是简单工厂模式的进一步抽象和推广。

工厂方法缺点:每加一个产品,就需要加一个产品工厂的类,增加了开发量。










阅读全文
0 0
原创粉丝点击