strategy作为一种factory格式,可以让我们在客户端随时切换构造策略。

策略模式如下图:

这个模式涉及三个部分,也就是分为3个类:

1 . context部分

2 . strategy部分

3 . concretestrategy部分

比如:

context部分:

strategy部分:

这一部分是提供一个接口可以让我们在context中统一有一个父类,方便调用,方便修改。

concretestrategy部分:

public class ConcreteStrategyA implements Strategy {

@Override public void algorithmInterface(){

//填充代码

}

}

public class ConcreteStrategyB implements Strategy{

@Override public void algorithmInterface() {

//填充代码

}

}

public class ConcreteStrategyC implements Strategy {

@Override public void algorithmInterface() {

//填充代码

}

}

最后在客户端调用的格式是:

Strategy s = new ConcreteStrategyA();

Context context = new Context(s);

context.ontextInterface();

我们选择策略只用在第一行修改就行了。

转载于:https://www.cnblogs.com/yanzhao-x/p/10970435.html

Java使用strategy模式构造程序相关推荐

  1. 【设计模式】C++/C#/Java实现Strategy模式

    本文属于「设计模式」系列文章之一.这一系列开始时间为2021/10/27,着重于「设计模式的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏设计模式系列文章汇总目录一文以作备忘.需要特别 ...

  2. java strategy模式,Java Strategy 模式简介

    GOF<设计模式>一书对Strategy模式是这样描述的:定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换.Strategy模式使算法可独立于使用它的客户而变化.别名:政策(P ...

  3. java语言商场打折_Java封装商场打折策略(Strategy模式)

    有了OO的基础后,开始认真学习设计模式. 首先学习的是Strategy,下面就封装商场打折策略来分析下策略模式是怎样一回事. 商场每逢节假日都会对不同的商品采用不同的打折策略,首先卖苹果的说我的苹果要 ...

  4. java if打折怎么算_Java封装商场打折策略(Strategy模式)

    有了OO的基础后,开始认真学习设计模式. 首先学习的是Strategy,下面就封装商场打折策略来分析下策略模式是怎样一回事. 商场每逢节假日都会对不同的商品采用不同的打折策略,首先卖苹果的说我的苹果要 ...

  5. Strategy模式

    一.从订餐开始<?XML:NAMESPACE PREFIX = O /> 小王和小刘两人到餐厅点餐,两人分别如下告诉厨师. 小王:我要一杯加了香草冰淇淋的巧克力汽水. 小刘:一个黑与白. ...

  6. 策略(strategy)模式

    Head First一书中对于策略(strategy)模式的正式定义是:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户. 为了介绍这个算法,书中讲了 ...

  7. 设计模式学习笔记——策略(Strategy)模式

    设计模式学习笔记--策略(Strategy)模式 @(设计模式)[设计模式, 策略模式, Stategy] 设计模式学习笔记策略Strategy模式 基本介绍 策略案例 类图 实现代码 Hand类 S ...

  8. 模板模式与策略模式/template模式与strategy模式/行为型模式

    模板模式 模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去 ...

  9. 实验一:行为型设计模式之Strategy模式

    实验一:行为型设计模式之Strategy模式 https://blog.csdn.net/weixin_43206161 一.实验目的 熟练使用JAVA实现行为型设计模式-策略模式,理解设计模式的模式 ...

最新文章

  1. 开源Android容器化框架Atlas开发者指南
  2. FPGA之道(57)状态机的实现方式
  3. 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
  4. 【SICP练习】107 练习3.8
  5. 将一个c 语言源程序文件中所有注释去掉后,存入另一个文件.,C实验内容.doc
  6. 中国物联网产业RFID发展机遇分析
  7. 1.Easy Touch 3.1
  8. jq php异步上传图片,php+jquery Ajax异步上传图片(ajaxSubmit)实例_PHP教程
  9. mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...
  10. 【转】android内存溢出的解决方法
  11. 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间...
  12. 方正国际用CMMI的思想管理博客
  13. 读懂西瓜书 14 : 概率图模型
  14. unity构建游戏场景
  15. Minecraft Mod 开发:4-创造模式物品栏
  16. sc2017新高二高一模拟赛7 总结
  17. 徐徐图之红楼之花自飘零水自流房东和房客彼得·潘与辛德瑞拉
  18. Java 日期的各种操作
  19. QQ小程序——无法正常创建项目与uniapp联动问题
  20. 下雨的时候你会想什么

热门文章

  1. python中字母大小写的转换,和一些字典的常规操作
  2. 从Python脚本判断服务器不可达,到Zabbix报警
  3. Dubbo的静态服务
  4. 电脑经验--三星S4显示互联网连接缓慢,网络已被禁用
  5. android实现语音合成
  6. tableau和powerbi的联系和区别
  7. 关于出去还是不出去的选择
  8. UNITY 打包时提示sdk tools 或 sdk build tools版本低时可以直接点update 按钮进行更新...
  9. php接口 接受ios或android端图片; php接收NSData数据
  10. shell脚本应用(二)