下载此文档

软件设计模式之行为模式.ppt


文档分类:IT计算机 | 页数:约40页 举报非法文档有奖
1/40
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/40 下载此文档
文档列表 文档介绍
第四章
行为模式
1
课程目标
Observer模式
Iterator模式
Strategy模式
Template模式
Visitor模式
Chain of Responsibility模式
Command模式
其他模式,如Interpreter模式、Mediator模式等
2
体验项目——<实现在窗体中使用鼠标的画图功能 >
本章体验项目的主要功能是使用Command模式实现窗体中鼠标画图功能,该程序主要由以下几个部分组成:
程序运行完成后,拖动鼠标在窗体上画出“Hello”字符
(1)命令接口Command,定义命令方法。
(2)具体命令角色MacroCommand和DrawCommand类,这两个类都实现Command接口,DrawCommand实现画图命令,MacroCommand类定义对命令的新增、执行和删除等方法。
(3)请求接口Drawable,DrawCanvas类实现Drawable接口,定义与具体请求相关的操作。
(4)客户端,继承JFrame并实现ActionListener和MouseMotionListener接口,创建窗体界面和各种事件
3
行为模式概述
行为模式涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,这些模式刻划了在程序运行时难以跟踪的复杂的控制流。
可分为行为类模式和行为对象模式两种:
(1)行为类模式使用继承机制在类间分派行为。
(2)行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任何一个对象都无法单独完成的任务。这里一个重要的问题是对等对象如何互相了解对方。对等对象可以保持显式的对对方的引用,但那会增加它们的耦合度。在极端情况下,每一个对象都要了解所有其他的对象。
4
Chain of Responsibility模式
Chain of Responsibility模式即职责链模式,在有不止一个对象可以处理或实现客户请求的时候,责任链模式(CoR)会顺序地给每一个对象一次处理请求的机会。一个较好的例子就是Java的异常处理机制,当程序中发生异常时,将会比较与catch所捕捉的异常是否相符合,如果符合就执行所设定的处理,如果都没有对比到适当的异处理,就会将异常丢出try catch程序块之外。
模式介绍
主要适用于以下情况:
有多个对象可以处理一个请求,但哪个对象来处理该请求是在运行时刻自动确定的。
想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
希望动态的指定处理某个请求的对象集合。
5
Chain of Responsibility模式结构图
职责链模式结构图如下:
Handler:定义一个处理请求的接口。
ConcreteHandler:处理它所负责的请求,并可访问在该链中它的后继者。如果可处理该请求,就处理;否则将该请求转发给它的后继者。
Client:向链上的具体处理者即ConcreteHandler对象提交请求。
6
Chain of Responsibility模式示例
public interface Handler {
public void handleRequest(char c);
}
public class CharacterHandler implements Handler {
private Handler successor;
public CharacterHandler(Handler successor) { = successor;}
public void handleRequest(char c) {
if((c)) {
("CharacterHandler类处理请求,返回结果:你输入的是字元");
}
else { (c); }
}
}
public class NumberHandler implements Handler {
private Handler successor;
public NumberHandler(Handler successor) { = successor;}
public void handleRequest(char c) {
if((c)) {
("NumberHandler类处理请

软件设计模式之行为模式 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数40
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdwd123321123
  • 文件大小735 KB
  • 时间2021-10-16
最近更新