当前位置: 首页 > wzjs >正文

浙江网站优化公司怎么宣传网站

浙江网站优化公司,怎么宣传网站,多软件网站下载安装,海洋网站建设行为型模式关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,明确对象的职责。 一、职责链模式 二、命令模式 请求发送者与接收者解耦 1. 自定义功能键 有一个软件,提供了一系列的自定义功能按键,用户可通…

行为型模式关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,明确对象的职责。

一、职责链模式


二、命令模式

请求发送者与接收者解耦

1. 自定义功能键

有一个软件,提供了一系列的自定义功能按键,用户可通过这些功能按键来实现一些快捷操作。

例,欲使用以下代码实现功能键功能处理类之间的调用关系:

/// <summary>
/// 功能键类,请求发送者
/// </summary>
class FunctionButton
{private HelperHandler help;/// <summary>/// 在FunctionButton的OnClick方法中调用HelpHandler的display方法/// </summary>public void OnClick(){help = new HelperHandler();help.Display();}
}

功能键FunctionButton充当请求的发送者,帮助文档处理类HelpHandler充当请求的接收者,在发送者FunctionButtonOnClick方法中调用接收者HelpHandlerDisplay方法。

以上代码的3个问题:

(1)发送者接收者之间的方法直接调用,耦合度高。更换请求接收者,必须更换修改发送者的源代码。例如,若需要将接收者HelpHandler改为WindowHandler,需要修改FunctionButton的代码。违背了开闭原则

(2)FunctionButton类在设计和实现时功能已被固定,如果增加一个新的请求接收者,如果不修改原有的FunctionButton类,则必须增加一个新的与FunctionButton功能类似的类,导致类的个数增加。

(3)用户无法按照自己的需要来设置某个功能键的功能。一个功能键类的功能一旦固定,不修改源代码请情况下,无法更换功能,缺乏灵活性。


2. 命令模式概述

软件开发中,经常需要向某些类发送请求(调用其中的某个方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个。

命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。

命令模式定义:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。别名:动作模式事务模式

命令模式的核心在于引入命令类,通过命令类来降低发送者和接收者的耦合度,请求发送者只需要指定一个命令对象,再通过命令对象来调用请求接收者的处理方法,结构如下图:

命令模式包含4个角色:

(1)抽象命令类(Command):抽象命令类一般是一个抽象类或接口,在其中声明了用于执行请求的Execute等方法,通过这些方法可以调用请求接收者的相关操作。

(2)具体命令类(ConcreteCommand):具体命令类是抽象命令类的子类,实现了在抽象命令类中声明的方法,它对应具体的接收者对象,将接收者对象的动作绑定到其中。在实现Execute方法时,将调用接收者对象的相关操作。

(3)调用者(Invoker):调用者即请求发送者,它通过命令对象来执行请求。一个调用者并不需要在设计时确定其接收者,因此它只与抽象命令类之间存在关联关系。在程序运行时可以将一个具体命令对象注入其中,再调用具体命令对象的Execute方法,从而实现间接调用请求接收者的相关操作。

(4)接收者(Receiver):接收者执行与请求相关的操作,它具体实现对请求的业务处理。

命令模式的本质是对请求进行封装,一个请求对应于一个命令,将发出命令的责任和执行命令的责任分割开。

命令模式关键在于引入抽象命令类,请求发送者针对抽象命令类编程,只有实现了抽象命令类的具体命令才与请求接收者相关联。在最简单的抽象命令类中只包含了一个抽象的Execute方法,每个具体命令类将一个Receiver类型的对象作为一个实例变量进行存储,从而具体指定一个请求的接收者,不同的具体命令提供了Execute方法的不同实现,并调用不同接收者的请求处理方法。

典型的抽象命令类

abstract class Command
{public abstract void Execute();
}

对于请求发送者调用者)而言,将针对抽象命令类进行编程,可以通过构造注入或者设值注入的方式在运行时传入具体命令类对象,并在业务方法中调用命令对象的Execute方法:

http://www.dtcms.com/wzjs/452237.html

相关文章:

  • 在哪做网站便宜又好贵州seo学校
  • 台州椒江网站建设怎么在百度制作自己的网站
  • 网站添加关键词建站seo是什么
  • 青岛网站建设 大公司搜索指数在线查询
  • 上海信息科技有限公司软件网站开发北京seo诊断
  • 昆明房地产网站建设学seo需要学什么专业
  • 广东网站开发设计湖北seo网站推广
  • 北京网站备案域名靠网络营销火起来的企业
  • WordPress登录插件哪个好网站seo推广招聘
  • 电子商务网站的建设 论文重庆网站制作系统
  • 线上网站设计商业软文怎么写
  • 成都微网站建设ip域名解析查询
  • 网站多杀流量需要换vps深圳百度快照优化
  • 好看的论坛源码深圳网络seo推广
  • 深圳企业登记注册推广网站seo
  • 做自主外贸网站和后台费用多少seo排名软件有用吗
  • 松桃县住房和城乡建设局网站互联网营销师报名费
  • 东莞贸易公司寮步网站建设价格怎么自己弄一个平台
  • 个人网站链接怎么做济南网站建设老威
  • 哪里有做图片的网站培训机构排名一览表
  • 深圳网站建设迅美百度精准搜索
  • 可以做网站啦啦啦资源视频在线观看8
  • 网站新功能演示用什么技术做的域名注册查询阿里云
  • 网站建设可行性seo范畴有哪些
  • 求免费网站能看的2021叶涛网站推广优化
  • 海东高端网站建设价格百度网址安全中心怎么关闭
  • 搭建影视网站违法幽默广告软文案例
  • 怎样做自己的网站和发布网站企业网站注册域名的步骤
  • windows7PHP网站建设百度seo快速排名优化
  • 手机网页免费制作app衡阳百度seo