Visitor 访问者模式


起步

访问者模式属于行为型。它会把操作(operator)与结构(structure)分离,使得在不改变原有结构的情况下,添加更多的其他操作。

以上解释让人很懵逼,那就结合代码细细道来吧!


Flyweight 享元模式


起步

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

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


Observer 观察者模式


起步

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

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


Builder 建造者模式


起步

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

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


Template 模板模式


起步

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

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