设计模式-行为型软件设计模式(五)
来源:互联网 发布:c语言驱动写法 编辑:程序博客网 时间:2024/06/08 09:42
策略模式
介绍
策略模式定义了一系列的算法,将每一个算法封装起来,并且使它们之间可以相互替换,策略模式让算法的变化不会影响到使用算法的客户。
(1)Stragegy:定义了一个共同的接口。所有具体的算法类实现这个接口。环境类Context使用这个接口调用具体的算法类。
(2)ConcreteStragegy:封装了具体的算法,实现同一个接口。
(3)Context:环境类用于配置一个具体的算法策略对象,维持一个策略接口类型的参考(reference),并且可以定义一个让接口Strategy的具体对象访问的接口。
示例
算法类public interface SortAlgorithm{ public abstract int[] sort(int[] nums,Context ct);}public class BubbleSort implements SortAlgorithm{ public int[] sort(int[] nums,Context ct) { ... }}class Context{ SortAlgorithm alg; private long stratTime; private long endTime; ... public Context(SortAlgorithm alg){this.alg = alg;} public int[] sortIntArray(int[] a) { return this.alg.sort(a,this); } ...}
优点
(1)得到一系列可复用的算法,这些算法继承了一个共同的抽象类。
(2)将各个算法封装在不同的策略子类中,使逻辑更加清晰,各个算法可以独立的变化。
(3)是功能改变或者拓展更加的容易。
阅读全文
1 0
- 设计模式-行为型软件设计模式(五)
- 设计模式-行为型软件设计模式(二)
- 设计模式-行为型软件设计模式(一)
- 设计模式-行为型软件设计模式(三)
- 设计模式-行为型软件设计模式(四)
- 设计模式-行为型软件设计模式(六)
- 设计模式笔记--行为型模式之五--中介者
- 观察者模式——行为型设计模式之五
- 设计模式-行为型模式
- [设计模式]--行为型模式
- 设计模式:行为型模式
- 设计模式--行为型模式
- 设计模式--行为型模式
- 设计模式----行为型模式
- 设计模式 -- 行为型模式
- 行为型设计模式
- 行为型设计模式
- 设计模式-行为型
- REDIS (13) 并发使用Jedis原理分析
- 设计模式-行为型软件设计模式(四)
- 在Linux系统部署InfluxDB
- FZUOJ 2250 不可能弹幕结界【BFS】
- 光栅图形学算法——裁剪算法
- 设计模式-行为型软件设计模式(五)
- 前端的拖拽操作
- 设计模式-行为型软件设计模式(六)
- python创建线程
- python 闭包
- stl-map
- POJ3164_Command Network_有向图::最小树状图::朱刘算法
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- Notepad++ pythonScript插件开发