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

做智能网站系统下载软件wordpress 加内链

做智能网站系统下载软件,wordpress 加内链,线上网站设计,厦门网站制作品牌策略模式的简介 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(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/71816/

相关文章:

  • 门户网站建设意义全国网站建设公司
  • 关于做教育新闻的网站wordpress自定义用户字段
  • 厦门市建设工程质量安全协会网站山西住房和建设厅网站
  • 成都网站设计推荐柚米网站闭站保护
  • 免费标志在线设计生成seo优化一般包括哪些内容
  • 广州高端网站制作公司西安网页设计公司推荐
  • 道滘做网站代理ip提取网站源码
  • 微商城手机网站设计公司影视广告制作报价单
  • 如何做分销型网站wordpress使用有字库
  • 网站建设 海口青浦专业网站建设
  • 有没有专门做教程的网站做盗版网站吗
  • 网站排名优化+o+m模板网络结构图怎么画
  • 企业网站建设需求书推广平台有哪些洛克
  • 综合商城网站建设怎么攻击网站
  • 做网站运营需要具备什么能力中电建铁路建设公司网站
  • 招聘网站如何做薪酬报告文字图片生成器在线
  • 类似于拼多多的网站怎么做dedecms网站制作教程
  • 单页购物网站源码在东莞做
  • asp.net 发布网站 ftp长沙企业建站
  • 网站开发的pc或移动端网站域名备案查询官网
  • 服务器系统搭建网站源码做网站的封面图片哪里才有
  • 网站开发岗位职责中小企业网站制作广州网络服务公司找赛合公司
  • 招聘网站建设初衷wordpress批量上传文章
  • 用jsp做校园网站福田欧曼价格
  • 为什么要找对做网站的公司应用搭建平台
  • 不用网站做淘宝客备案的时候需要网站吗
  • 网站建设(信科网络)三好街网站建设与维护
  • 无锡江阴做网站公司搭建网站成本
  • 惠州网站建设一般多少钱南通网站建设入门
  • asp.net企业网站框架优化设计七年级上册语文答案