JAVA设计模式之策略模式(整理版本)

JAVA设计模式之策略模式(整理版本)

ID:40297199

大小:35.00 KB

页数:4页

时间:2019-07-30

JAVA设计模式之策略模式(整理版本)_第1页
JAVA设计模式之策略模式(整理版本)_第2页
JAVA设计模式之策略模式(整理版本)_第3页
JAVA设计模式之策略模式(整理版本)_第4页
资源描述:

《JAVA设计模式之策略模式(整理版本)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA设计模式之策略模式一、策略模式介绍Ø策略模式(Strategy模式)是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。Ø策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。Ø一句话来形容:准备一组算法,并将每一个算法封装起来,使得他们可以互换二、策略模式的结构策略模式涉及到如下三个角色:Ø环境角色:持有一个Strategy类(策略类)的引用Ø抽象策略角色:策略类,通常由一个接口或者抽象类实现Ø具体策略角色:包装了相关的算法和行为三、策略模式的优缺

2、点3.1策略模式的优点Ø提供了管理相关的算法族的办法。Ø提供了可以替换继承关系的办法。Ø避免使用多重条件转移语句3.2策略模式的缺点Ø客户端必须知道所有的策略类,并自行决定使用哪一个策略类。Ø造成很多的策略类。四、策略模式的应用举例在此使用了7个java类来描述说明Strategy设计模式; 1、SortStrategy.java 排序算法策略接口 2、SortBin.java 二分法排序 3、SortBubble.java冒泡排序4、SortHeap.java 堆排序 5、SortQuick.java 快

3、速排序 6、Sorter.java排序算法使用者 7、SortTest.java 带有main方法的测试类1、SortStrategy.javaimportjava.util.List;publicinterfaceSortStrategy{ publicvoidsort(Listlist);}2、SortBin.javaimportjava.util.List;publicclassSortBinimplementsSortStrategy{ publicvoidsort(List

4、list){   //sortinglogiccodehere   System.out.println("Thisisbinsort.");}3、SortBubble.java importjava.util.List;publicclassSortBubbleimplementsSortStrategy{ publicvoidsort(Listlist){   System.out.println("Thisisbubblesort.");}4、SortHeap.javaimpo

5、rtjava.util.List;publicclassSortHeapimplementsSortStrategy{ publicvoidsort(Listlist){   //sortinglogiccodehere   System.out.println("Thisisheapsort.");}5、SortQuick.javaimportjava.util.List;publicclassSortQuickimplementsSortStrategy{ publicvo

6、idsort(Listlist){   //sortinglogiccodehere   System.out.println("Thisisquicksort.");}6、Sorter.javaimportjava.util.List;publicclassSorter{ privateSortStrategystrategy; privateSorter(){} //通过构造器传入排序策略 publicSorter(SortStrategystrategy){   if(stra

7、tegy==null)     strategy=newSortQuick();   this.strategy=strategy;   }  publicvoidsort(Listlist){   this.strategy.sort(list);}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。