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

南宁网站seo大概多少钱外贸出口平台网站

南宁网站seo大概多少钱,外贸出口平台网站,广西奶茶加盟网站建设,wordpress被改密码目录 策略模式 定义 类图 角色 优缺点 使用场景 命令模式 定义 类图 角色 优缺点 使用场景 使用案例 策略模式 定义 策略模式是一种行为型模式,它将对象和行为分开,将行为定义为一个行为接口和具体行为的实现。策略模式最大的特点是行为的…

目录

策略模式

定义

类图

角色

优缺点

使用场景

命令模式

定义

类图

角色

优缺点

使用场景

使用案例


策略模式

定义

        策略模式是一种行为型模式,它将对象和行为分开,将行为定义为一个行为接口和具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if 判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化。

类图

角色

  • Strategy: 抽象策略类:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法
  • Context:环境类/上下文类:
    • 上下文是依赖于接口的类,即上下文包含用策略(接口)声明的变量
    • 上下文提供一个方法,持有一个策略类的引用,最终给客户端调用。该方法委托策略变量调用具体策略所实现的策略接口中的方法
  • ConcreteStrategy:具体策略类:具体策略是实现策略接口的类。具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体方法

优缺点

  • 优点
    • 策略模式提供了对“开闭原则"的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地增加新的算法或行为。
    • 策略模式提供了管理相关的算法族的办法
    • 策略模式提供了可以替换继承关系的办法
    • 使用策略模式可以避免使用多重条件转移语句
  • 缺点
    • 客户端必须知道所有的策略类,并自行决定使用哪一个策略类
    • 策略模式将造成产生很多策略类,可以通过使用享元模式在一定程度上减少对象的数量

使用场景

  • 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为
  • 一个系统需要动态地在几种算法中选择一种
  • 如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现
  • 不希望客户端知道复杂的,与算法相关的数据结构,在具体策略类中封装算法和相关的数据结构,提高算法的保密性与安全性

命令模式

定义

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

        为了降低系统的耦合度,将请求的发送者和接收者解耦;在命令模式中,发送者与接收者之间引入了新的命令对象,将发送者的请求封装在命令对象中,再通过命令对象来调用接收者的方法;

类图

角色

  • 接收者(Receiver):负责具体执行一个请求;

  • 命令角色(ICommand):定义需要执行的所有命令行为;

  • 具体的命令角色(ConcreteCommand):内部维护一个 Receiver,具体的命令,实现命令接口;

  • 请求者角色(invoker):接收客户端的命令,并执行命令;

优缺点

优点

  • 通过引入命令的抽象接口,实现了命令请求与实现的解耦;

  • 拓展性良好,可以很容易的增加新命令;增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,它满足“开闭原则”对拓展比较灵活

  • 可以实现宏命令,命令模式与组合模式结合,将多个命令装配成一个组合命令,即宏命令;

  • 方便实现Undo,Redo 操作。命令模式可以与后面介绍的备忘录模式结合,实现命令的撤销与恢复;

缺点

  • 命令类可能过多

使用场景

  • 系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互

  • 系统需要在不同的时间指定请求,将请求排队和执行请求

  • 系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作

使用案例

  • Runable

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

相关文章:

  • 庐江网站广告怎么做上海专业网络推广公司
  • 学做馒头面包哪个网站好查看关键词被搜索排名的软件
  • 连接国外网站的app怎么创建自己的网站平台
  • 政府信息网站建设移动端关键词排名优化
  • 天津做网站哪家比较好品牌营销策划方案怎么做
  • 禁止浏览器访问一个网站怎么做搜索引擎优化的简写是
  • 百度收录网站怎么更改关键词网站开发北京公司
  • 阿里巴巴上做英文网站一年多少钱谷歌怎么推广自己的网站
  • 永久免费手机网站自助建站郑州seo询搜点网络效果佳
  • 做淘宝优惠卷网站步骤免费网站注册平台
  • 提供网站建设公司电话免费软文发布平台
  • 深圳网站建设公司的外文名是手机系统优化软件
  • 做国际网站的上海高端网站公司怎么在百度上免费做广告
  • 直接做那个视频网站贵阳网站建设制作
  • 免费网站推广怎么做外链网站大全
  • 英文网站建设目的seo查询网站
  • 营业范围中网站开发与网页设计网址搜索ip地址
  • e4a怎么做点击跳转网站百度竞价代运营公司
  • 学校网站做等级保护域名权重查询
  • 如何做动态网站四川网络推广seo
  • 石家庄网站开发与优化上海牛巨微网络科技有限公司
  • wordpress中文连接中国seo公司
  • 微信怎么做自己的网站北京seo怎么优化
  • 县政府网站建设意见精准大数据获客系统
  • 网站建设可研怎么开发自己的网站
  • 石家庄网站建设案例如何推广公众号
  • 乐山网站建设公司网站源码
  • 长沙做网站优化互联网销售是做什么的
  • 网站制作方案的重要性优化网站推广教程整站
  • 石家庄网站建设信息流优化师证书