1、设计模式 (3)Design Pattern (3)*Institute of Computer SoftwareNanjing University1摘要 Design PatternsWhy, What, HowCreational, Structural and Behavioral Patterns*Institute of Computer SoftwareNanjing University2Behavioral Patterns 行为模式是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且关注它们之间的通信模式。类的行为模式:使用继承关系在几个类之间分
2、配行为 Interpreter, Template Method对象的行为模式:使用对象的聚合来分配行为*Institute of Computer SoftwareNanjing University3Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor *Institute of Computer SoftwareNanjing University4Chain of R
3、esponsibility Intent 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 Motivation 应根据普遍性即从最特殊到最普遍的顺序来组织帮助信息,比如用户界面中会有一个对象来处理帮助请求,但是哪一个对象则取决于上下文 给多个对象处理一个请求的机会,从而解耦发送者和接受者*Institute of Computer SoftwareNanjing University5Example*Institute of Computer SoftwareNanjing University6
4、Applicability 有多个对象可以处理一个请求,哪个对象处理该请求则在运行时刻确定 在不明确指定接收者的情况下,向多个对象中的一个提交一个请求 可处理一个请求的对象集合应被动态制定*Institute of Computer SoftwareNanjing University7Structure*Institute of Computer SoftwareNanjing University8Participants Handler 定义一个处理请求的接口 (可选 )实现后继链 ConcreteHandler 处理它所负责的请求 可访问它的后继者 如果可处理该请求,就处理之;否则将该请求转发给它的后继者 Client 提交请求*Institute of Computer SoftwareNanjing University9Collaboration 当 Client提交一个请求时,请求沿链传递直至有一个 ConcreteHandler对象负责处理它*Institute of Computer SoftwareNanjing University10Sample Code