掌握设计模式,有利于开发中,对系统的复用进行有利的选择。可以说,程序员只有真正掌握了模式的设计,理解其中的精髓,才能把自己的编码发挥到最高的水平。由于时间关系,一直未能读完设计模式,每次都是断断续续....今日难得有时间学习一下,打算花点时间和精力把java设计模式中的相关用法总结一下,其中总结的资料大多数来自网上一些相资料的集合,再加上个人的一些心得与体会。闲话不必多说,言归正传。
一般来说,java分23种设计模式。我们按两条准则进行分类。
第一准则(目的):
模式是用来完成什么工作的。可以分为:创建型(与对象的创建有关)、结构型(处理类或对象的组合)、行为型(对类或对象怎样交互和怎样分配职责进行描述)。
第二准则(范围):
指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时便确定了下来。对象模式处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。从某种意义上来说,几乎所有的模式都使用继承机制。“类模式”只指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。
总述
1.
创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。
2.
结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式。
3.
行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样作完成单个对象所无法完成的任务。
如下表所示:
|
创建型
|
结构型
|
行为型
|
类
|
工厂方法
(
Factory Method
)
|
适配器
(类:
Adapter
)
|
解释器
(
Interpreter
)
模板方法
(
Template Method
)
|
对象
|
抽象工厂
(
Abstract Factory
)
生成器
(
Builder
)
原型
(
Prototype
)
单件
(
Singleton
)
|
适配器
(对象:
Adapter
)
桥接
(
Bridge
)
组合
(
Composite
)
装饰
(
Decorator
)
外观
(
Facade
)
享元
(
Flyweight
)
代理
(
Proxy
)
|
职责链
(
Chain of Responsibilit
y)
命令
(
Command
)
迭代器
(
Iterator
)
中介者
(
Mediator
)
备忘录
(
Memento
)
观察者
(
Observer
)
状态
(
State
)
策略
(
Strategy
)
访问者
(
Visitor
)
|