最病 o Consequences 口本质:分离职责,动态组合! 口优点 口降低耦合度:对象仅需知道请求会被“正确”地处 理。接收者和发送者都没有对方的明确信息 口增强了给对象指派职责的灵活性 缺点 口不保证被接受 Institute of Computer Software 2021/215 Nanjing University
Consequences 本质:分离职责,动态组合! 优点 降低耦合度:对象仅需知道请求会被“正确”地处 理。接收者和发送者都没有对方的明确信息 增强了给对象指派职责的灵活性 缺点 不保证被接受 2021/2/5 Institute of Computer Software Nanjing University 11
最病 E Implementation 口实现后继者链 口定义新的链接 口使用已有的链接,如组合对象 连接后继者:如果没有已有的引用可定义一个 链,那么你必须自己引入它们 口表示请求:最筒单的方式是hard- coded操作调用 Institute of Computer Software 2021/215 Nanjing University
Implementation 实现后继者链 定义新的链接 使用已有的链接,如组合对象 连接后继者:如果没有已有的引用可定义一个 链,那么你必须自己引入它们 表示请求:最简单的方式是hard-coded操作调用 2021/2/5 Institute of Computer Software Nanjing University 12
最病 Related patterns 口经常与 Composite一起使用。这时,一个构件的 父构件可作为它的后继。 Institute of Computer Software 2021/215 Nanjing University
Related Patterns 经常与Composite一起使用。这时,一个构件的 父构件可作为它的后继。 2021/2/5 Institute of Computer Software Nanjing University 13
最病 A Known Use: Event Bubbling 口 Java aWt1.o 思考题:有何 public boolean action(Eventevent, object obj 缺点? if(event. target == btnoK dookBtnAction0, 1 else if (event. target = btnExit) doExitBtnAction(: 1 else[ return super action(event. obey return true; Event bubbling stop ● DHTML的事件处理 Event Bubbling. html Institute of Computer Software 2021/215 Nanjing University
Known Use:Event Bubbling Java AWT 1.0 2021/2/5 Institute of Computer Software Nanjing University 14 public boolean action(Event event, Object obj){ if (event.target == btnOK){ doOkBtnAction();} else if (event.target == btnExit) { doExitBtnAction();} else { return super.action(event.obj);} return true; } ⚫ DHTML的事件处理 ⚫ Event_Bubbling.html 思考题:有何 缺点? Event bubbling stop
最病 E Command o Aliases: Action Transaction 口| ntent 口将一个请求封装为一个对象,从而使你可用不同的请求对客 户进行参数化;对请求排队或记录请求日志,以及支持可撤 销的操作 口 Motivation 口把请求信息和请求执行过程封装起来 口往往需要把命令请求与处理请求的对象分开, command模式 可以把调用操作的对象与操作的目标对象分开 口允许通过多种途径调用同一个请求一一请求的重用 Institute of Computer Software 2021/215 Nanjing University
Command Aliases: Action,Transaction Intent 将一个请求封装为一个对象,从而使你可用不同的请求对客 户进行参数化;对请求排队或记录请求日志,以及支持可撤 销的操作 Motivation 把请求信息和请求执行过程封装起来 往往需要把命令请求与处理请求的对象分开,command模式 可以把调用操作的对象与操作的目标对象分开 允许通过多种途径调用同一个请求——请求的重用 2021/2/5 Institute of Computer Software Nanjing University 15