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

黑龙江建设人员证件查询网站/淘宝美工培训

黑龙江建设人员证件查询网站,淘宝美工培训,vs2010做的网站,哪里专业做网站目录 一、行为型模式 1.1、策略模式 1.1.1、概论 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、策略模式 1.1.1、概论 策略模式设计的每一个算法都封装了起来,使他们可以相互替换,通过一个对象委派不同的算法给相应的客户…

目录

一、行为型模式

1.1、策略模式

1.1.1、概论

1.1.2、案例实现

1.1.3、优缺点

1.1.4、使用场景


一、行为型模式


1.1、策略模式

1.1.1、概论

策略模式设计的每一个算法都封装了起来,使他们可以相互替换,通过一个对象委派不同的算法给相应的客户进行使用.

例如一家百货公司,规定在逢年过节的时候进行促销活动.  针对不同的节日(春节、中秋节、端午节)推出不同的促销活动,然后由 促销员 将促销活动展示给客户. 

策略模式主要角色如下:

  • 抽象策略类:由一个接口或者抽象类来实现,给出了所有 具体策略类 所需的接口.
  • 提交策略类:实现了抽下你个策略定义的接口,提供具体的算法实现.
  • 环境类:持有一个策略类引用,最终给客户端调用.

1.1.2、案例实现

针对以上案例进行实现.

/*** 抽象策略: 促销活动接口*/
public interface Strategy {void show();}
/*** 具体策略类: 春节活动类*/
public class StrategyA implements Strategy {@Overridepublic void show() {System.out.println("春节到了,全场买一送一!");}}
/*** 具体策略类: 中秋节活动类*/
public class StrategyB implements Strategy {@Overridepublic void show() {System.out.println("中秋节到了,全场满 50 送月饼!");}}
/*** 具体策略类: 端午节活动类*/
public class StrategyC implements Strategy {@Overridepublic void show() {System.out.println("端午节到了,全场满 80 送粽子!");}}
/*** 环境类: 销售员类*/
public class SalesMan {private Strategy strategy;public SalesMan(Strategy strategy) {this.strategy = strategy;}public Strategy getStrategy() {return strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void showAction() {strategy.show();}}
public class Client {public static void main(String[] args) {//1.春节SalesMan man = new SalesMan(new StrategyA());man.showAction();System.out.println("======================");//2.中秋节man.setStrategy(new StrategyB());man.showAction();System.out.println("======================");//3.端午节man.setStrategy(new StrategyC());man.showAction();System.out.println("======================");}}

执行结果如下:

1.1.3、优缺点

优点:

  • 策略类之间可以自由切换:由于策略类都实现同一个接口,所以使得他们之间可以根据不同的需求场景任意切换.
  • 易扩展,符合开闭原则:增加一个新的的策略只需要添加一个具体的策略类即可,不需要修改原有代码.
  • 避免使用多重条件选择语句(if else),充分体现面向对象设计思想.

缺点:

客户端必须知道所有的策略类,并自行决定使用哪个策略类.

策略模式将造成产生多个策略类(一个策略产生一个类).

1.1.4、使用场景

  1. 一个系统需要动态的在几种算法中选择一种时,可以将每个算法封装到策略类中.
  2. 一个类定义了多个行为,并且这些行为在这个类中以多个条件语句(if else)出现,就可以将每个分支移入他们各自的策略类中以替代这些条件语句.
  3. 每个策略算法彼此独立,要对客户隐藏具体算法实现细节.

http://www.jmfq.cn/news/5313529.html

相关文章:

  • 网站建设雨点/互联网行业最新资讯
  • 网站建设与维护流程图/百度排名优化咨询电话
  • 无锡新吴区建设环保局网站/seo优化招聘
  • 网站建设专业网站设计公司物格网/扬州网站seo
  • 公司网站建设带来的好处/google浏览器官方下载
  • 中国建设银行官网站企业年金/希爱力副作用太强了
  • 榆林市横山县建设局官方网站/想要网站导航推广页
  • 网站建设与维护实训总结/有哪些网络推广平台
  • 网站建设需要的设备和软件/建网站公司
  • 建设银行U盾不自己弹网站了/网络运营
  • 登尼特网站建设服务/聊城网站推广的公司
  • 南宁城乡建设委员会的网站/软考培训机构哪家好一点
  • 房屋中介的网站怎么建设/百度竞价关键词出价技巧
  • 网站建设 广州/彩虹云商城网站搭建
  • 长春建设银行社会招聘网站/优化营商环境发言材料
  • 唐山建设集团招聘信息网站/江苏网页设计
  • 养殖舍建设网站/体球网足球世界杯
  • 简阳电力建设立项网站/营销渠道的三个类型
  • 佛山网站建设锐艺a068/建网站找哪个公司
  • 微信小程序格泰网站建设/做网销的一天都在干嘛
  • 天润网站建设/win10优化工具
  • 公司网站建设需要哪些/怎么开发自己的小程序
  • 500网站建设/最新军事新闻今日最新消息
  • 松江泖港网站建设/今日新闻
  • 网站建设 数据上传 查询/谷歌搜索引擎为什么打不开
  • 北京棋森建设有限公司网站/新闻发布系统
  • 集团网站怎么建设/网站seo推广平台
  • 政协网站建设要求/网络营销专业是干什么的
  • 政法委网站建设方案/seo发帖网站
  • 呼图壁网站建设/怎么在百度上做广告