《行为型模式》PPT课件.ppt

《行为型模式》PPT课件.ppt

ID:52106241

大小:4.08 MB

页数:199页

时间:2020-03-31

《行为型模式》PPT课件.ppt_第1页
《行为型模式》PPT课件.ppt_第2页
《行为型模式》PPT课件.ppt_第3页
《行为型模式》PPT课件.ppt_第4页
《行为型模式》PPT课件.ppt_第5页
资源描述:

《《行为型模式》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件设计模式教学内容行为型模式命令模式迭代器模式观察者模式策略模式模板方法模式行为型模式行为型模式概述行为型模式(BehavioralPattern)是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信协作完成某些功能,一个对象在运行时也将影响到其他对象的运行。行为型模式行为型模式概述行为型模式分为类行为型模式和对象

2、行为型模式两种:类行为型模式:类的行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。对象行为型模式:对象的行为型模式则使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据“合成复用原则”,系统中要尽量使用关联关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式。行为型模式行为型模式简介职责链模式(ChainofResponsibility)命令模式(Command)解释器模式(Interpreter)

3、迭代器模式(Iterator)中介者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板方法模式(TemplateMethod)访问者模式(Visitor)命令模式模式动机在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。命

4、令模式模式动机命令模式命令模式模式动机命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。这就是命令模式的模式动机。命令模式模式定义命令模式(CommandPattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。命令模式模式定义Encapsulatear

5、equestasanobject,therebylettingyouparameterizeclientswithdifferentrequests,queueorlogrequests,andsupportundoableoperations.Frequencyofuse:mediumhigh命令模式模式结构命令模式模式结构命令模式包含如下角色:Command:抽象命令类ConcreteCommand:具体命令类Invoker:调用者Receiver:接收者Client:客户类命令模式模式分析命令模式的本质是对

6、命令进行封装,将发出命令的责任和执行命令的责任分割开。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。命令模式模式分析命令模式使请求本身成为一个对象,这个对象和其他对象一样可以被存储和传递。命令模式的关键在于引入了抽象命令接口,且发送者针对抽象命令接口编程,只有实现了抽象命令接口的具体命令才与接收者相关联

7、。命令模式模式分析典型的抽象命令类代码:publicabstractclassCommand{publicabstractvoidexecute();}命令模式模式分析典型的调用者代码:publicclassInvoker{privateCommandcommand;publicInvoker(Commandcommand){this.command=command;}publicvoidsetCommand(Commandcommand){this.command=command;}//业务方法,用于调用命令类

8、的方法publicvoidcall(){command.execute();}}命令模式模式分析典型的具体命令类代码:publicclassConcreteCommandextendsCommand{privateReceiverreceiver;publicvoidexecute(){receiver.action();}}命令模式模式分析典型的请求接收者代码:publ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。