Flyweight 享元模式


起步

享元模式属于结构型。“元”有单元,或者内容单元的意思,基本上你可以认为是“同一个对象”。所以享元模式可以理解为共享同一个对象。

听起来是不是很像单例模式?实则不同!


Observer 观察者模式


起步

观察者模式属于行为型,旨在定义一个一对多关系,当一个对象状态发生改变时,所有依赖对象都会自动接收通知。

观察者模式属于抽象模式,要点不在于代码实现上,不同应用场景会有不同的实现方式,但要解决的问题不会变。


Builder 建造者模式


起步

命令模式属于创建型,旨在解决多参数初始化类带来的复杂设计问题。

“多参数初始化类”的意思就是,实例化一个对象时需要传入大量的变量。另一方面,也许这些传入的变量之间存在一定的关系约束,比如需要构建一个正方形对象,那就要求传入的长宽值相等。


Template 模板模式


起步

模板模式全称应该是模板方法模式(Template method pattern),属于行为型。其利用继承关系,实现代码复用,同时确保子类扩展能力。

在这里我用 “子类扩展能力” 属于一家之言,主要想表达,模板模式在一定程度上限制了子类的扩展方法,或者说要求子类在预设的扩展点上进行功能扩展。


Bridge 桥接模式


起步

桥接模式属于结构型,其目的是将抽象和实现解耦,让它们可以独立变化。

这里“抽象”与“实现”都不是平常说的抽象类、子类等概念。用维基百科的原话就是:

The class itself can be thought of as the abstraction and what the class can do as the implementation.

(抽象)与类要做的事(实现)都在频繁变化时,桥接模式就有意义。