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

广州建设网站公司哪个济南兴田德润有活动吗工地找活app排行榜

广州建设网站公司哪个济南兴田德润有活动吗,工地找活app排行榜,湖南岳阳网站开发网络公司,蒙城做网站目录 策略模式 定义 类图 角色 优缺点 使用场景 命令模式 定义 类图 角色 优缺点 使用场景 使用案例 策略模式 定义 策略模式是一种行为型模式,它将对象和行为分开,将行为定义为一个行为接口和具体行为的实现。策略模式最大的特点是行为的…

目录

策略模式

定义

类图

角色

优缺点

使用场景

命令模式

定义

类图

角色

优缺点

使用场景

使用案例


策略模式

定义

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

类图

角色

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

优缺点

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

使用场景

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

命令模式

定义

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

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

类图

角色

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

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

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

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

优缺点

优点

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

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

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

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

缺点

  • 命令类可能过多

使用场景

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

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

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

使用案例

  • Runable

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

相关文章:

  • 郑州公司网站wordpress truepixel
  • 大学做视频网站设计中国建设银行的网站设计
  • 深圳拼团手机网站开发网站建设规划设计
  • 网站开发遇到的难点夜聊
  • 江门网站制作套餐中文域名是什么
  • 吉林省住房建设厅网站wordpress 注册登陆插件
  • 教育类php开源网站设计方案怎么写
  • 免费按模板制作微网站什么是网络设计平台
  • 如何做网站跳转登入网站 预算
  • 丽水市住房和城乡建设局网站医院网站制作多少钱
  • app制作网站收费吗免费网站建设教程
  • 家教网站如何做wordpress挖主题
  • 做任务赚q红包的网站做视频网站要什么
  • 那种非法网站怎么做的上海全国关键词排名优化
  • 深圳做微信网站公司哪家好网站设计制做报价
  • 泰安网站建设制作电话号码广告设计实习内容
  • 电脑上做网站网站建设 贴吧
  • 中国站长之家官网用wordpress做的商城
  • 做阿里云网站做网站的所有代码
  • 做网站竞争大吗怎么在微信里创建公众号
  • 网站的设计与制作论文题目个体户可以注册网站建设服务
  • asp.net网站制作视频教程wordpress分类文章排序
  • 网站建设管理教程视频教程企业网站开发课程培训
  • 宝坻手机网站建设网站建设收费标准方案
  • 戚墅堰做网站郑州网站开发招聘
  • 南通的电商网站建设1688官网网页版
  • 十堰建网站玉环网站建设
  • 网站建设解决问题深圳十大网站建设公司
  • 北京如何建设网站私密浏览器如何看片
  • 装置艺术那个网站做的好云南昆明企业网站建设