小故事说JAVA设计模式-策略模式【Strategy Pattern】
# 弄清概念
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化
# 策略模式的结构
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构:
这个模式涉及到三个角色:
1.环境(Context)角色:持有一个Strategy的引用;
2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口;
3.具体策略(ConcreteStrategy)角色:包装了相关的算法或行为;
# 小故事说设计模式
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个
小故事说JAVA设计模式-策略模式【Strategy Pattern】相关推荐
- 解读设计模式----策略模式(Strategy Pattern)
一.模式概述 策略模式(Strategy Pattern)在外形上与状态模式很相似,但在意图上有些不同.其意图是使这些算法可以相互替换,并提供一种方法来选择最合适的算法. 在我应 ...
- 关于设计模式——策略模式-Strategy Pattern
文章目录 1 策略模式 1.1 模拟鸭子 1.2 设计原则 1.3 整合行为 1.4 模拟鸭子代码的代码 1.5 动态设定行为 1.6 重新查看整体 1.7 继承和组合 1.8 总结 1.9 优劣期间 ...
- Java设计模式-策略模式(Strategy)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.策略模式 二.策略模式示例代码 1.支付策略 2.具体支付策略实现 3.策略执行对象 4.测试 总结 前言 本篇介 ...
- 设计模式——策略模式( Strategy Pattern )
写代码超过千行,自定义类10个以上,往往写着写着就觉的乱,最终决定抽空补习下设计模式方面的知识.本来AS3出了本关于设计模式的书的,国人也翻译了.我同事也早早买了一本,但前些天我借来看了几页,翻译的太 ...
- 设计模式-策略模式(Strategy Pattern)
Define a family of algorithms,encapsulate each one,and make them interchangeable(定义一组算法,将每个算法都封装起来,并 ...
- 设计模式-策略模式(Strategy)-Java
设计模式-策略模式(Strategy)-Java 目录 文章目录 1.前言 2.示例案例-电影票打折方案 3.策略模式概述 3.1.策略模式定义 3.2.策略模式结构 3.3.策略模式结构图中角色 3 ...
- 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了"工厂模式"."策略模式" ...
- Java设计模式-策略模式作业
Java设计模式-策略模式作业,所有类和接口均在一个package内 文章目录 前言 一.作业内容 二.具体实现 1.类图 2.Strategy接口 3.PreCopyStrategy类 4.Post ...
- 8.6 GOF设计模式四: 策略模式… Strategy Pattern
策略模式- Strategy Pattern 在POS系统中,有时需要实行价格优惠, 该如何处理? 对普通客户或新客户报全价 对老客户统一折扣5% 对大客户统一折扣10% 注:课件 ...
最新文章
- 大众点评订单分库分表实践之路
- 初识ABP vNext(11):聚合根、仓储、领域服务、应用服务、Blob储存
- Java面试知识点:Date类、异常
- 电脑有回声_电脑连接麦克风有回音怎么办?麦克风回声的解决方法
- 2008-10-13 XEIM 2.0 beta 准时发布
- Kali Linux 网络扫描秘籍 第七章 Web 应用扫描(一)
- mysql sync es 异步双写_mysql数据同步es方案思考
- gitHub----如何利用gitHub 展示 项目作品
- Julia: 从set 、setdiff和 setdiff!说起
- 木材材积表快速计算器_原木材积计算器
- 中文版modbus测试软件,Modbus调试工具
- 高频电子线路复习笔记(2)——高频电路基础
- 科技文献检索(六)——检索语言
- python绘制国内生产总值散点图_Python学习第90课-数据可视化之散点图绘制
- 【整理】童鞋尺码大全--方便查找对照
- photoshop中如何在6寸相纸上打印1寸照片12张3X4模式(手动拖动模式)
- 瑞萨e2studio(6)----编译调试
- 推荐一款超快的Android模拟器
- md5加密md5解密
- 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...