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

1.简单工厂模式

基类(接口)-- 

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

具体实现类--

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

工厂类

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

返回实例化后的对象。

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

客户端

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

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

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

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

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


优点

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


2.工厂方法模式

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

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


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

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

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



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

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

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

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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值