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

校园网站建设资金来源有山东关键词网络推广

校园网站建设资金来源有,山东关键词网络推广,wordpress 滚动加载插件,网站建设 推广400电话“行为变化”模式 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化”模式组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。 经典模式:Command、Visitor 动机&#xff0…

“行为变化”模式

在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化”模式组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。

经典模式:Command、Visitor

动机(Motivation)

在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合----比如需要对行为进行“记录、撤销、重做、事务”等处理,这种无法抵御变化的紧耦合使不合适。

在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。

模式定义:

将一个请求(行为)封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队和记录请求日志,以及支持可撤销的操作。

#include <string>
#include <iostream>
#include <vector>
using namespace std;class Command {
public:virtual void execute() = 0;virtual ~Command() {}
};class ConcreteCommand1 : public Command {string arg;
public:ConcreteCommand1(const string& a) : arg(a) {}void execute() override {cout << "#1 process..." << arg << endl;}
};class ConcreteCommand2 : public Command {string arg;
public:ConcreteCommand2(const string& a) : arg(a) {}void execute() override {cout << "#2 process..." << arg << endl;}
};class MacroCommand : public Command {vector<Command*> commands;
public:void addCommand(Command* cmd) {commands.push_back(cmd);}void execute() override {for (auto& iter_cmd : commands){iter_cmd->execute();}}
};int main() {ConcreteCommand1 command1("Arg ###");ConcreteCommand2 command2("Arg $$$");MacroCommand macro;macro.addCommand(&command1);macro.addCommand(&command2);macro.execute();
}

要点总结:

Command模式的根本目的在与将”行为请求者“与”行为实现者“解耦,在面向对象语言中,常见的实现手段使”将行为抽象为对象“。

实现Command接口的具体命令对象ConcreteCommand有时候根据需要可能会保存一些额外的状态信息。通过使用Composite模式,可以将多个”命令“封装为一个“符合命令”MacroCommand。

Command模式与C++中的函数对象有些类似。但两者定义行为接口的规范有所区别:Command以面向对象中的“接口-实现”来定义行为接口规范,更严格,但有性能损耗;C++函数对象以函数签名来定义行为接口规范,更灵活,性能更高。

http://www.hkea.cn/news/957795/

相关文章:

  • 西安有哪些做网站的公司好邵阳疫情最新消息
  • asia域名的网站竞价广告
  • 怎么注册公司支付宝账号seo求职信息
  • 多语言网站怎么做网络推广平台公司
  • 山东公司注册网站怎样写营销策划方案
  • 河北省香河县建设局网站中国互联网协会
  • 北京丰台区网站建设游戏推广赚佣金的平台
  • 网站没排名怎么办搜索引擎广告优化
  • wordpress内容主题模板网络网站推广选择乐云seo
  • 电子元器件商城网站建设百度开户怎么开
  • 企业网站开发基本流程百度博客收录提交入口
  • 甘特图模板关于网站建设微信营销模式
  • 网站建设的swot分析长尾关键词挖掘精灵
  • 发布自己的做家教的网站网店运营推广登录入口
  • b s网站系统如何做性能测试百度推广运营怎么做
  • 洛阳seo外包公司费用seo的中文意思
  • 政府网站建设遵循的原则seo网站内容优化
  • java做网站具体步骤邵阳seo优化
  • 自己做的网站如何放进服务器今天今日头条新闻
  • 男装网站的网站建设背景惠州seo按天计费
  • 如何快速提高网站排名互联网项目推广
  • icp备案网站名称更改成都网站设计
  • 企业网站建设需求分析seo排名资源
  • python基础教程雪峰东莞搜索seo网站关键词优化
  • b2b网站开发供应商小程序开发教程全集免费
  • 用自己的手机做网站外链网站是什么
  • 市场调研公司介绍网站推广优化公司
  • 玉溪人民政府网站建设现状新网站seo
  • 湖南餐饮网站建设2023北京封控了
  • 重庆网站设计人员外贸网站搭建推广