Java使用strategy模式构造程序
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模式构造程序相关推荐
- 【设计模式】C++/C#/Java实现Strategy模式
本文属于「设计模式」系列文章之一.这一系列开始时间为2021/10/27,着重于「设计模式的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏设计模式系列文章汇总目录一文以作备忘.需要特别 ...
- java strategy模式,Java Strategy 模式简介
GOF<设计模式>一书对Strategy模式是这样描述的:定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换.Strategy模式使算法可独立于使用它的客户而变化.别名:政策(P ...
- java语言商场打折_Java封装商场打折策略(Strategy模式)
有了OO的基础后,开始认真学习设计模式. 首先学习的是Strategy,下面就封装商场打折策略来分析下策略模式是怎样一回事. 商场每逢节假日都会对不同的商品采用不同的打折策略,首先卖苹果的说我的苹果要 ...
- java if打折怎么算_Java封装商场打折策略(Strategy模式)
有了OO的基础后,开始认真学习设计模式. 首先学习的是Strategy,下面就封装商场打折策略来分析下策略模式是怎样一回事. 商场每逢节假日都会对不同的商品采用不同的打折策略,首先卖苹果的说我的苹果要 ...
- Strategy模式
一.从订餐开始<?XML:NAMESPACE PREFIX = O /> 小王和小刘两人到餐厅点餐,两人分别如下告诉厨师. 小王:我要一杯加了香草冰淇淋的巧克力汽水. 小刘:一个黑与白. ...
- 策略(strategy)模式
Head First一书中对于策略(strategy)模式的正式定义是:策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户. 为了介绍这个算法,书中讲了 ...
- 设计模式学习笔记——策略(Strategy)模式
设计模式学习笔记--策略(Strategy)模式 @(设计模式)[设计模式, 策略模式, Stategy] 设计模式学习笔记策略Strategy模式 基本介绍 策略案例 类图 实现代码 Hand类 S ...
- 模板模式与策略模式/template模式与strategy模式/行为型模式
模板模式 模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去 ...
- 实验一:行为型设计模式之Strategy模式
实验一:行为型设计模式之Strategy模式 https://blog.csdn.net/weixin_43206161 一.实验目的 熟练使用JAVA实现行为型设计模式-策略模式,理解设计模式的模式 ...
最新文章
- 开源Android容器化框架Atlas开发者指南
- FPGA之道(57)状态机的实现方式
- 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
- 【SICP练习】107 练习3.8
- 将一个c 语言源程序文件中所有注释去掉后,存入另一个文件.,C实验内容.doc
- 中国物联网产业RFID发展机遇分析
- 1.Easy Touch 3.1
- jq php异步上传图片,php+jquery Ajax异步上传图片(ajaxSubmit)实例_PHP教程
- mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...
- 【转】android内存溢出的解决方法
- 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间...
- 方正国际用CMMI的思想管理博客
- 读懂西瓜书 14 : 概率图模型
- unity构建游戏场景
- Minecraft Mod 开发:4-创造模式物品栏
- sc2017新高二高一模拟赛7 总结
- 徐徐图之红楼之花自飘零水自流房东和房客彼得·潘与辛德瑞拉
- Java 日期的各种操作
- QQ小程序——无法正常创建项目与uniapp联动问题
- 下雨的时候你会想什么