上一次总结了设计模式中的六大原则,它们就像天空中璀璨的六颗明星,指引着我们走进了设计模式的世界。看完了六个原则,接下来才是重头戏,23种设计模式该登场了,它们各有各的特色,各有各的能耐,但都遵循设计模式原则。23种设计模式总共分为三类:创建型、结构型和行为型。限于现在对于模式的理解有限,今天就先从宏观上来总结一下。等到以后放到实际应用中,体会更深刻时,再来分析具体的模式。
创建型模式
首先是创建型模式,它包括抽象工厂、工厂方法、建造者、原型和单例。如图所示:
创建型模式,顾名思义是用来创建对象的模式。如果你是这么理解那就片面啦!创建对象是没错,但是它的主要作用是隐藏类的实例,通过封装隐藏是如何被创建和放在一起的,整个系统关于这些对象所知道的是由抽象类所定义的接口。这样就将业务逻辑和界面逻辑分开,减少客户端代码及其修改。这样,创建型模式在创建什么、谁创建它、它是怎么创建的这些方面提供了很大的灵活性。抽象工厂就是很具有代表性的一个模式。
结构型模式
接下来是结构型模式,请看下图:
结构型模式涉及到如何组合类和对象以获得更大的结构。结构型模式采用继承机制来组合接口或实现。结构型对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。因为可以在运行时刻改变对象组合关系,所以对象组合方式具有更大的灵活性。
通过学习适配器、装饰、桥接、组合、享元、代理和外观这其中模式,让我们了解到要优先使用对象组合,而不是类继承的原则在结构型模式中体现的淋漓尽致,这里不优先使用类继承主要是因为,随着类继承层次的赠多,类于类之间的耦合度也会急剧增加,这样在修改或维护时带来很多的麻烦。组合/聚合模式很好的解决了这个问题。
行为型模式
行为型模式分为两部分,分别以观察者模式和策略模式为代表,如图所示:
构建型模式和结构型模式强调的都是静态的类实体之间的关系,而行为型模式解决的是类实体之间的通讯关系。这些模式刻画了在运行时难以跟踪的复杂的控制流。他们将你的注意力从控制流转移到对象间的联系方式上来。不管是哪个模式,都在尽可能的降低耦合度,也就是解耦。对象之间通过接口或抽象类来进行交流。
总结:
对于23种设计模式的理解现在还很肤浅,只有通过不断的实践才能熟练的掌握。创建型、构建型、行为型将设计模式区分为三大类别,至于为什么这么分,现在还仍未明白,现在就先放下吧,随着知识的应用,理解的不断加深,相信自己也会成为高手。