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

dede旅游网站服装企业微网站建设

dede旅游网站,服装企业微网站建设,seo关键词优化举例,连云港网站关键词策略模式的简介 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是将不同的算法封装成独立的策略类&#xff0c…

策略模式的简介

        在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是将不同的算法封装成独立的策略类,使得它们可以相互替换,而不影响客户端的使用。

        策略模式与其他设计模式有一些明显的区别。与模板方法模式相比,策略模式强调算法的灵活性,允许在运行时切换不同的策略。与状态模式相比,策略模式更注重不同算法之间的替换性,而非状态的内部转换。

策略模式的结构

  • 抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。
  • 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现。
  • 环境(Context)类:持有一个策略类的引用,最终给客户端调用

策略模式的优缺点

  优点:

  1. 算法可以自由切换。
  2. 避免使用多重条件判断。
  3. 扩展性良好

  缺点:

  1. 策略类会增多。
  2. 所有策略类都需要对外暴露。

策略模式的使用场景

        一个对象,其行为有些固定不变,有些又容易变化。对于这些容易变化的行为,我们不希望将其实现绑定在对象中,而希望能够动态地针对不同场景产生不同应对的策略。 这时就要用到策略模式,就是为了应对对象中复杂多变的行为而产生的:

  • 系统有很多类,而他们的区别仅在于行为不同
  • 一个系统需要动态地在几种算法中选择一种

直接代码理解

//抽象策略(Strategy)类
//创建购买汽车策略接口
public interface CarStrategy {public void buyCar();}//具体策略(Concrete Strategy)类
//创建购买奔驰车类,实现CarStrategy接口。
public class BcCar implements CarStrategy {@Overridepublic void buyCar() {System.out.println("欢迎购买奔驰E300L。。。。。。");}}//创建购买宝马车类,实现CarStrategy接口。
public class BmwCar implements CarStrategy {@Overridepublic void buyCar() {System.out.println("欢迎购买宝马530Li。。。。。。");}}//创建购买奥迪车类,实现CarStrategy接口。
public class AudiCar implements CarStrategy {@Overridepublic void buyCar() {System.out.println("欢迎购买奥迪A6L。。。。。。");}}
//环境(Context)类
//创建汽车环境类。
public class CarContext {private CarStrategy carStrategy;public CarContext(CarStrategy carStrategy){this.carStrategy = carStrategy;}public void buyCarStrategy(){carStrategy.buyCar();}}//Test@Testpublic void testStrategy(){// 宝马车CarContext bmwCarContext = new CarContext(new BmwCar());bmwCarContext1.buyCarStrategy();// 奔驰车CarContext bcCarContext = new CarContext(new BcCar());bcCarContext.buyCarStrategy();// 奥迪车CarContext audiCarContext = new CarContext(new AudiCar());audiCarContext.buyCarStrategy();}

我觉得这个模式比较好理解,也就是用来解决在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。

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

相关文章:

  • 无锡华庄行业网站建设河北建设厅官方网站八大员考试
  • 如何做网站的流量分析手机新手学做网站
  • 外贸公司的网站建设模板国家企业信用公示信息查询平台
  • 北京教育学会网站建设最新的军事新闻报道
  • 信息产业部互联网网站管理工作细则wordpress vps 安装
  • app网站制作公司音乐网站建设流程
  • 乐度网上购物网站建设方案电商网站开发设计方案有哪些
  • 凡科网做网站视频百度高级搜索怎么用
  • 网站备案号填写中机建设一公司网站
  • 网站建设及安全管理网络科技有限公司英文
  • 亚马逊备案网站建设wordpress如何放入域名
  • 新闻类网站开发多久短视频营销方式有哪些
  • 成都市做网站网站建设客户资料收集清单
  • 页网站设计百度爱采购网站官网
  • 网站备案 假通信地址上海建站模板源码
  • 中国建设执业资格注册管理中心网站制作公司网站价格
  • 深圳网站公司招聘wordpress 前台登录美化
  • 做vlogger的网站有哪些天津企业网站设计制作
  • 网站开发神器天城建设网站
  • 网站建设在微信里打广告内容wordpress如何cdn加速
  • 网站建站程序网站在线报名怎么做
  • 用vs2008做网站富海人才招聘网官网
  • 做网站要学什么语言网站建设 商业价值
  • 济源市网站建设国外财经网站是怎么做的
  • 个人博客网站模板wordpress网站的百度地图怎么做
  • 如何设计网站风格推广网站制作怎么做
  • 域名网站备案管理系统锡林浩特网站建设微信开发
  • 江苏省城乡建设厅建设网站古风网站建设模板下载
  • wordpress 禁用feedseo排名优化工具推荐
  • 网站品牌高端定制wordpress ucenter插件