Chain of Responsibility模式
责任链模式可以在系统中建立一个链,这样消息可以在首先接收到它的级别处被处理,或者可以定位到可以处理它的对象。
优点
降低了耦合度。
增加向对象指定责任的灵活性。
由于在一个类中产生的时间可以被发送到组成中的其他处理器上,类的集合可以作为一个整体。
在一下情况中,应该使用Chain of Responsibility模式:
多个对象可以处理一个请求,而其处理器确是未知的。
想要在不指定确切的请求接收对象的情况下,向几个对象中的一个发送请求。
可以动态地指定能够处理请求的对象集。
Command模式
命令模式在对象中封装了请求,这样就可以保存命令。将命令传递给方法以及像任何其他对象一样放回该命令。
其优点如下:
将调用操作的对象与知道如何完成该操作的对象相分离。
更容易添加新命令,因为不用修改已有类。
在一下情况中,应该使用Command模式:
要在不同的时间指定、排序以及执行请求。
必须支持Undo、日志记录或事务。
Intepreter模式
解释器模式可以解释定义其语法表示的语言,还提供了用表示来解释语言中的语句的解释器。
其优点如下:
容易修改并扩展语法。
更容易实现语法。
在以下情况中,应该使用Interpreter模式:
语言的语法比较简单。
效率并不是最主要的问题。
Iterator模式
迭代器模式为集合中的有序访问提供了一致的方法,而该集合是独立于