您的位置:首页 > 其它

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

2017-10-13 16:59 225 查看
1.简单工厂模式

基类(接口)-- 

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

具体实现类--

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

工厂类

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

返回实例化后的对象。

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

客户端

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

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

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

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

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

优点

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

2.工厂方法模式

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

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

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

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

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

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

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

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

工厂方法缺点:每加一个产品,就需要加一个产品工厂的类,增加了开发量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式