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

网站快速备案价格php网站开发过程考试

网站快速备案价格,php网站开发过程考试,建e室内设计网 3d模型医美前台,网页设计html期末考试写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 策略模式(Strategy…

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。

策略模式(Strategy)

是一种行为型模式。

目录

一、概述

 1.1、直观的理解:

1.2、适用场景:

1.3、主要的角色:

1.4、描述对象关系的UML图如下:

二、代码示例

2.1、对象之间的关系用UML图表示如下:

2.2、Java版的代码如下:


一、概述

1、定义算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。

 1.1、直观的理解

以商场购物活动为例,商场经常在一些特殊的日子里做各种不同的促销活动,那么不同的促销打折方式就可以当做一种不同的策略,其中原价、打折、满减都是具体的策略,如下:

除此之外: 

1.2、适用场景:

  • 许多相关的类仅仅是具体实现上有差异
  • 需要使用一个算法的不同变体
  • 算法中的一些数据不应该让客户知道
  • 一个类使用条件语句定义了多种行为,可以把这些行为分别封装起来

(注:上述最后一点,书上说可以减少一些条件语句,我的理解是针对客户来说是可以减少的,而不是说真的完全不需要编写条件语句了,比如可以使用策略模式+简单工厂模式,将条件判断放到策略工厂里,客户只需要给策略工厂传递参数即可,由策略工厂判断该实例化哪个策略并且运行。)

1.3、主要的角色:

  • 策略类:策略抽象类或接口 + 具体的策略类(多个)
  • 上下文类:先给上下文类填装一个具体策略实例对象,然后就可以通过它来访问策略类

1.4、描述对象关系的UML图如下:

二、代码示例

假设每次要从3个不同的算法挑一个使用,问题简单就不再分析了,你可以把这当做一个模板,方便灵活使用:

2.1、对象之间的关系用UML图表示如下:

2.2、Java版的代码如下:

策略类的接口:

public interface Strategy {public void algorithmInterface();
}

具体策略类1:

public class ConcreteStrategy1 implements Strategy {@Overridepublic void algorithmInterface() {System.out.println("算法1实现!");}
}

具体策略类2:

public class ConcreteStrategy2 implements Strategy {@Overridepublic void algorithmInterface() {System.out.println("算法2实现!");}
}

具体策略类3:

public class ConcreteStrategy3 implements Strategy {@Overridepublic void algorithmInterface() {System.out.println("算法3实现!");}
}

上下文类:

public class Context {Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public void contextInterface() {strategy.algorithmInterface();}
}

主程序(发起请求的类):

public class Main {public static void main(String[] args) {Context context;context = new Context(new ConcreteStrategy1());context.contextInterface();context = new Context(new ConcreteStrategy2());context.contextInterface();context = new Context(new ConcreteStrategy3());context.contextInterface();}
}

这里暂时就不再例其它编程语言的例子了,可以把上面的Java例子复制到你本地,运行main函数试一下加深理解。这些代码都是我自己学习的时候根据一些教材手敲的,不存在bug可以直接运行。

如果觉得本文还不错,就请点个赞给作者一点鼓励吧!如果有建议,也请评论指教和讨论!

http://www.yayakq.cn/news/482270/

相关文章:

  • 做网站前台要学什么课程中国网直播平台
  • 青岛百度网站排名wordpress 伪静态 nginx
  • 自己有服务器和域名怎么做网站事件营销策划
  • 高校网站建设目的单位网站建设费用账务处理
  • 吉安网站公司免费推广网站在线
  • 网站开发与设计的总体思想宁波网站建设公司哪有
  • 广安建网站找人做网站内容自己编辑吗
  • 创新的江苏网站建设广西桂林自驾游攻略
  • 护肤网站的功能设计wordpress当前版本
  • 网站制作应该注意到的问题北京互联网公司网站建设
  • 网站怎么做更新吗大连装修公司哪家比较好
  • 做网站能赚流量钱吗前端和后端哪个前景好
  • 衣服网站建设规划书网站设计制作用软件
  • 学做网站需要买什么书本地安装网站
  • 建筑类企业网站模板wordpress迁移空间后无法显示图片
  • NET开发网站开发工程师招聘重庆企业网站建设推荐
  • 滁州做网站价格青岛做网站电话
  • 建网站后如何维护网站开发报价合同
  • 做酒店网站所用到的算法邢台123交友信息手机版
  • 部队网站建设建议wordpress 首页文件夹
  • 用dw做淘宝网站类似凡科网的网站
  • 快速制作网站的方法网站建设合同范本-经过律师审核
  • h5技术的网站免费考研论坛
  • 网站建设服务中心花钱做网站注意什么
  • 贵州公明建设投资咨询有限公司官方网站婚介网站建站
  • 个人如何做商城网站怎样设网站
  • 网站开发php和ui在手机上建设网站教程
  • 龙港做网站店铺国内外网站开发现状
  • 深圳求做网站关于公司网络优化方案
  • 做问卷调查赚钱的网站好全网影视vip网站建设