博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
策略模式(Strategey Pattern)
阅读量:5957 次
发布时间:2019-06-19

本文共 955 字,大约阅读时间需要 3 分钟。

策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

 

 

下面举个例子:

有两个具体策略,分别执行两个整型加法和减法。

interface Strategy {    public abstract int handle(int a, int b);}public class AddOperation implements Strategy {     public int handle(int a, int b) {        return a+b;    }}public class SubstractOperation implements Strategy {     public int handle(int a, int b) {        return a-b;    }}public class Context {    Strategy strategy;    public Context(Strategy s) {        strategy = s;    }       public void display(int a, int b) {        int x = strategy.handle(a, b);        System.out.println("result=" + x);    }}public class Test {    public static void main(String[] args) {            Context c1 = new Context(new AddOperation());            c1.display(1,2);            Context c2 = new Context(new SubstractOperation());            c2.display(1,2);    }}

如此一来,就能在运行时改变选择的策略,具体策略与客户解耦了,就算具体策略的细节被改变,客户也不需要知道。

转载于:https://www.cnblogs.com/13jhzeng/p/5570149.html

你可能感兴趣的文章
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
web安全问题分析与防御总结
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>