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

服装外贸erpseo网络营销推广公司

服装外贸erp,seo网络营销推广公司,.com网站怎么做,网站建设教学工作总结命令模式 介绍 定义案例问题堆积在哪里解决办法 行为形设计模式 就是把 “发布命令 执行命令”细化为多个角色 每个角色又能继续细化 发布命令 1 打印1-9 a 打印A-G 如果有更多的命令 命令处理方式更加多样性 更复杂 处理命令的顺序拆分角色:降低耦合度 命令类&am…

命令模式

介绍

定义案例问题堆积在哪里解决办法

行为形设计模式


就是把 “发布命令 执行命令”细化为多个角色
每个角色又能继续细化

发布命令

1 打印1-9

a 打印A-G

如果有更多的命令
命令处理方式更加多样性 更复杂
处理命令的顺序
拆分角色:降低耦合度
命令类(一个命令一个类)

具体接收类(具体的处理命令 当前
用静态方法代替)

执行执行

先进先执行
新进后执行
优先等级高的先执行
)可以设置多种优先等级

类图

1 . 一个命令接口类

2 “命令接口类” 包含了 “处理类”

3 传给了“调用方” 来定义如何调用

代码

角色1  BaseCommand :抽象命令

角色2.1 Command1 :具体命令1

角色2.2 CommandA :具体命令2

角色3 Receiver:具体命令处理

角色4 Invoke:执行方

BaseCommand


public abstract class BaseCommand
{// 委托:命令public delegate void ExecuteCommand();public ExecuteCommand executeCommand = null;public BaseCommand(ExecuteCommand executeCommand){this.executeCommand += executeCommand;}// 执行命令public abstract void Execute();
}

Command1


public class Command1 : BaseCommand
{public Command1(ExecuteCommand executeCommand): base(executeCommand){}public override void Execute(){if (null != executeCommand)executeCommand();}
}

CommandA


public class CommandA : BaseCommand
{public CommandA(ExecuteCommand executeCommand): base(executeCommand){}public override void Execute(){if (null != executeCommand)executeCommand();}
}

Receiver

using UnityEngine;/// <summary>
/// 功能集合
/// </summary>
public class Receiver
{static public void Show1to9(){Debug.Log("打印:123456789!");}static public void showAtoG(){Debug.Log("打印:ABCDEFG!");}
}

Invoke

/// <summary>
/// 调用者 
/// 可以继续扩展:
/// 1 收集命令
/// 2 命令顺序不同 倒序 或者 特殊优先级高的先执行
/// 3 扩展为设计模式深入设计
/// </summary>
public class Invoke
{private BaseCommand commend = null;Invoke() { }public Invoke(BaseCommand commend){this.commend = commend;}public void Execute(){commend.Execute();}
}

运行代码

using System;
using UnityEngine;public class TestML : MonoBehaviour
{void Start(){BaseCommand command = null;string strCommand = "1";switch (strCommand){case "A":command = new CommandA(Receiver.showAtoG);break;case "1":command = new Command1(Receiver.Show1to9);break;default:break;}// 执行命令Invoke invoke = new Invoke(command);invoke.Execute();}}

运行结果

心得备注

设计模式需要放到框架设计 才更有意义,有时候如果有一个小的需求并且后期也不会改动,直接用流程的方式写代码更加简单,进一步设计反而没必要!

如果放入项目框架, 命令模式的4个角色还能继续细分,细分后再细分,考虑后期的各种变动,根据策划案进一步细分优化,细节处使用更多的设计模式。

一步步优化下去, 推迟细节再推迟。。直到config配置文件或者Execl。

http://www.yidumall.com/news/100020.html

相关文章:

  • 给菠菜网站做支付seo网络排名优化
  • 新网互联 网站上传益阳网络推广
  • wordpress导出数据seo是什么职业
  • 常州网站建设案例百度推广非企代理
  • 上海网站建设系南安seo
  • 会议展厅设计装修公司seo怎么优化排名
  • 怎么做网站教程+用的工具百度搜索风云榜排行榜
  • 湛江网站设计服务关键词排名监控批量查询
  • 公司网站找不到了建设企业网站多少钱
  • centos 7 wordpress2022年百度seo
  • 免费申请三级域名网站长春seo
  • wordpress日志在哪泰州seo外包公司
  • 开网站 主机 服务器2023年新冠疫情最新消息
  • 洛阳创智广场做网站推广赚佣金的软件排名
  • 做动漫网站需要服务器么24小时人工在线客服
  • 秦皇岛做网站公司有哪些百度广告代理
  • 网站切版教程网站做优化好还是推广好
  • 牙科网站开发在线网页制作系统搭建
  • 腾讯云做淘客网站网络营销的内容
  • 南京企业网站开发百度网络小说排行榜
  • 网站开发网络免费建站软件
  • 嘉定网站制作2024新闻热点摘抄
  • 淘宝网站做超链接每日新闻摘抄10一30字
  • 个人网站设计目的北京网站优化服务商
  • 网站开发好还要空间吗免费网站推广
  • 做相册的网站(网易网站推广的公司
  • 怎么创建平台卖自己的产品优化大师的使用方法
  • 国外上国内网站很慢千锋教育培训
  • 企业门户网站的设计 流程图站长工具seo综合查询问题
  • 全国疫情越来越严重了网络推广优化方案