设计模式分类

in 四月桐花 with 0 comment

Java设计模式中的分类

这种分类方式一方面是为了配合全书的写作逻辑,另一方面则侧重于实际开发过程中需求是如何分类的,因为大多数的软件项目的开发过程都会按照"需求-分析-设计-实现..."的顺序,而较少采用"特性-功能-需求-产品"的顺序.

接口型模式

16474999363670

职责型模式

16474998846090

构造型模式

16474999984990

操作型模式

16475000591337

扩展型模式

16475001128839

常用的分类

下面的分类方式也很常见,这种分类方式是基于面向对象语言特性的分类方式,这种分类方式的优点是,对于擅长使用面向对象语言的开发者,它显得更加清晰.而在具体到设计开发的环节时,也更容易甄选往哪个方向考虑问题更加合适.不足之处在于容易出现过度设计导致的代码晦涩难懂.

创建型模式

简单工厂模式(Simple Factory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
创建者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)

结构型模式

外观模式/门面模式(Facade门面模式)
适配器模式(Adapter)
代理模式(Proxy)
装饰模式(Decorator)
桥梁模式/桥接模式(Bridge)
组合模式(Composite)
享元模式(Flyweight)

行为型模式

模板方法模式(Template Method)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
职责链模式(Chain of Responsibility)
命令模式(Command)
访问者模式(Visitor)
调停者模式(Mediator)
备忘录模式(Memento)
迭代器模式(Iterator)
解释器模式(Interpreter)

小结

从系统设计的角度去看,无论使用了何种语言,都会尽可能的向"高内聚,低耦合"的方向靠拢,设计模式的一个重要目的既是利用面向对象语言的特性,使自身的系统各个模组的职能尽可能独立完善,同时对于模组之间的调用/持有的关系尽可能的简单(或可单独维护).由于Java这种面向对象的语言,可以将系统中的模块归纳到类的概念,所以这种基于系统设计的思想也成为了Java程序设计的一个基本理念.
参考
设计原则