一 Template模式
一句话,就是使用抽象类定义一个实现的框架,把有些实现延迟到子类去实现。
二 Memento模式
这个模式也很容易理解,memento是一个保存另外一个对象内部状态拷贝的对象.
这样以后就可以将该对象恢复到原先保存的状态.
三 Observer模式
AWT中的事件监听器就是采用的这种模式,这个模式主要就是通过监听者这样的一个
属性解耦事件的发生者和事件的响应者。否则,当事件发生时,在事件的发生者的方法
必须调用响应者的处理方法,这样,使得这两者将高度依赖。如果把事件当作消息的话,
这个就是相当于使用消息处理机制解耦消息的发送者和消息的接收者。
四 chain of responsibility
我觉得这跟composite和decorator其实有点相像,层层处理。
该模式主要是用来处理请求的,由于请求种类多,如果放在一个接口里使用不同的
方法去处理各种不同的请求,当请求变化时,由于语言(java)一般为静态,横向扩展
必须修改接口,重新编译,但是如果使用chain of responsibility,把请求的种类的处
理从横向改为纵向。这样多一种请求,只要多添加一个处理接口的实现(处理类的子类)
,而无须更改接口,这符合了设计原则的开闭原则,即变化靠的是继承,而不是更改原
来的代码。
五 command模式
我觉得这跟observer模式有点相像,本来命令的调用者是在调用方法里直接执行命令
接收者的动作的,这里使用命令接口来对这个执行请求进行了封装,解耦了命令执行者和
命令接收者。java的swing菜单都是command模式。命令调用者调用的是菜单命令,而菜单
命令再去调用命令的接收者的相应动作,菜单命令实现了命令接口。