设计模式--工厂三姐妹

在大话设计模式中接触到了工厂三姐妹,简单工厂,工厂方法,和抽象工厂。只能从浅的角度来理解他们的区别,在演化过程中根据需求的变化,尽量将代码的改动变得最少。而“开放-封闭”,“依赖倒置”原则,作为思想指导。

如果简单理解

简单工厂:就是把生产轿车,生产自行车挤在一个工厂。

工厂模式:我将生产轿车,和自行车放在了两个专门的工厂。

抽象工厂:我增加了产品类,跑车和山地车,放在了对应工厂中。

这三者的客户端要哪个产品,和工厂大爷一声,大爷帮你取,客户端不会看到产品

设计模式--工厂三姐妹_第1张图片

一、简单工厂模式:
    将业务逻辑和界面逻辑分开了,降低了耦合度。(你不直接看见汽车)
    在课本中算法的封装:定义一个抽象的算法接口,提供不同算法的公共接口方法。其他具体算法继承这个抽象       类,并 实现具体的算法。(产品都放在工厂里)
    简单工厂类:  作为一个独立的类,实现了针对不同的算法进行实例化。
二、工厂方法模式:
    定义一个用于创建对象的接口,让子类决定实例化哪一个类。  遵循了开放—封闭原则。(由抽象的工厂接口)与简单工厂都封装了对象的创建,使得要更换对象时不需要做大的改动就可实现,降低了客户端程序与产品对象的耦合。
对比分析:
1、工厂模式的优点:
   工厂模式是简单工厂模式的进一步抽象和推广。遵循了“开放—封闭”原则。
2、简单工厂模式的优点:
   简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。
3、工厂模式的缺点:
    工厂方法把简单工厂的内部逻辑判断转移到了客户端代码来执行;每增加一产品就要增加一个产品工厂的类,增加了额外的开发量。
三、抽象工厂模式:
  提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
总结:对照书上例子,还能有所理解,而抽象化的文字总结,就有点难接受了,只能在以后实践中深刻理解。





你可能感兴趣的:(设计模式--工厂三姐妹)