策略模式很简单,类似于C里维护一个函数指针,只是将具体策略抽象出来并维护。

代码如下:

  • Strategy
public interface Strategy {public void doMethod();
}

  • ConcreteStrategy
public class ConcreteStrategy implements Strategy {@Overridepublic void doMethod() {System.out.println("ConcreteStrategy method");}
}

  • Context
public class Context {private Strategy strategy;public Context(Strategy strategy){this.strategy = strategy;}public void doMethod(){strategy.doMethod();}
}

  • APP 测试类
public class App {public static void main(String[] args) {Context context = new Context(new ConcreteStrategy());context.doMethod();}
}

转载于:https://www.cnblogs.com/Fredric-2013/p/4576475.html

设计模式(策略模式)相关推荐

  1. Python设计模式-策略模式

    Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...

  2. 关于设计模式——策略模式-Strategy Pattern

    文章目录 1 策略模式 1.1 模拟鸭子 1.2 设计原则 1.3 整合行为 1.4 模拟鸭子代码的代码 1.5 动态设定行为 1.6 重新查看整体 1.7 继承和组合 1.8 总结 1.9 优劣期间 ...

  3. [设计模式] ------ 策略模式

    策略模式 它定义了算法家族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化,不会影响到使用算法的客户 其实很简单,可能很多人都用到了,只不过还不知道这就是策略模式而已. 比如定义一个接口A, ...

  4. java 策略模式 促销_java设计模式——策略模式

    一. 定义与类型 定义:针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换.策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能.当代码中 ...

  5. Springboot 使用设计模式- 策略模式

    前言 直白点,什么场景我们需要使用到设计模式- 策略模式. 在平常的springboot项目里面做CRUD,我们的习惯性基本是 一个mapper,一个service,一个serviceImpl. 但是 ...

  6. 李建忠设计模式——策略模式Strategy

    目录 1.策略模式定义 1.动机 2.模式定义 3.结构 2.实现例子 1.问题描述 2.代码实现 3.要点总结 4.参考 1.策略模式定义 1.动机 软件构建过程中,某些对象使用的算法可能多种多样, ...

  7. 15. 星际争霸之php设计模式--策略模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  8. Java设计模式-策略模式作业

    Java设计模式-策略模式作业,所有类和接口均在一个package内 文章目录 前言 一.作业内容 二.具体实现 1.类图 2.Strategy接口 3.PreCopyStrategy类 4.Post ...

  9. 设计模式-策略模式2.0

    设计模式-策略模式2.0 前面文章我们说过了传统的策略模式的实现,本文我们简单说下设计模式中的升级版的策略模式,策略模式2.0. 代码实现 talk is cheap show me the code ...

  10. 设计模式-策略模式(Strategy)-Java

    设计模式-策略模式(Strategy)-Java 目录 文章目录 1.前言 2.示例案例-电影票打折方案 3.策略模式概述 3.1.策略模式定义 3.2.策略模式结构 3.3.策略模式结构图中角色 3 ...

最新文章

  1. ORACLE12C_ADG删除pdb
  2. vc 取windows系统信息 版本 cpu信息 内存信息 ie版本信息 office版本
  3. 第三期CSIG图像图形学科前沿讲习班-详细日程
  4. 绝对牛逼的3套Python项目,就业/毕设/私活/女朋友都不愁了
  5. Linux 中 awk命令应用
  6. OpenStack基金会携手Intel、Hyper发布开源Kata Containers项目
  7. 移动服务安全现状分析!
  8. 【MySQL】4、Select查询语句
  9. MySQL NDB Cluster
  10. Go语言结构体的多字段赋值是并发安全的吗?
  11. js打乱数字顺序吗_js如何将打乱的一维数组按顺序排列(不用封装好的js方法)?...
  12. croppic 图片裁剪
  13. Bash shell 连接字符串
  14. 威廉玛丽学院计算机教授刘旭,专栏-中国计算机学会
  15. Kubernetes集群部署之二CA证书制作
  16. 【LIMU-Bert论文阅读】
  17. 交叉编译OpenCV3.4.1报错
  18. 机器学习之偏斜类误差度量
  19. 小程序如何引用阿里巴巴图标
  20. 离线安装.Net Framework 3.5

热门文章

  1. Microsoft System Center 2012:将系统管理带入云中
  2. 微信小程序 自定义单选复选按钮组的实现(用于实现购物车产品列表功能)
  3. 如何合理的学习Netty?(学习目录)
  4. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(1):Mybatis和Hibernate概念理解...
  5. DotText源码学习——ASP.NET的工作机制
  6. 问题-[ACCESS2007]怎么显示MsysObjects
  7. 菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构
  8. 医学研究——造福全人类
  9. 500分求助,delphi里用standred来配置dbf文件
  10. python字典练习题