大话设计—创建型模式总结

来源:互联网 发布:高数有没有解题软件 编辑:程序博客网 时间:2024/05/01 21:41

23个设计模式外加简单工厂模式还有设计模式六大原则构成了这本书的主线。其中23个设计模式可以分为三大类:

下面先总结一下第一大类:

【创建型】在所有的创建型模式中,处理的都是创建对象的方法,程序不应该依赖于创建和安排对象的方式。许多情况下,被创建的对象的确切特性可能因为程序需要而不同,因此把创建过程抽象到一个特定的创建者类中,可以使得程序更加灵活通用。

下表是我对创建型模式的进一步理解和总结。



在学习的过程中,发现这几个模式有共通之处,不太容易辨别,下面再细说一下自己的理解。

【抽象工厂模式和建造者模式】

抽象工厂模式是应对一系列对象的创建的问题,比如说,对于创建一个汽车对象来说,抽象工厂模式更关注一系列的对象的创建,或者说是汽车类型中的各个部分,如:Wheel、Engine、Body等等类型的创建。换句话说关注点在这一系列对象上。

建造者模式是应对一个复杂对象创建的问题,或者说是针对这个复杂对象中的子对象的创建的问题。以汽车的例子来说,建造者模式相对注重汽车类型(上面所说的“复杂对象”)本身以及其各个部分(Wheel、Engine、Body等等)类型的创建。建造者模式要求这个复杂的类型(汽车)中的各个子类型的结合部分相对稳定,用例子说明就是对于汽车来说,无论用什么配件组装,个个配件的组装方式都一样,有相对稳定的接口。对于这辆车你用什么牌子的Wheel、什么牌子的Engine可能变化会很大很频繁。

【工厂方法模式和原型模式】

这两种模式从功能上讲都是封装了对对象的创建,只不过原型模式是用原型克隆进行拷贝来完成对象的创建,在这之中还应注意浅拷贝和深拷贝的区别;工厂方法模式是重新创建一个对象,而原型模式是利用现有的对象进行克隆,当两个对象或多个对象雷同的时候,可以考虑用一个已创建的对象去克隆出其余的对象。


相比较来说,单例模式就比较容易理解了,这里就不过多阐述了。




0 0
原创粉丝点击