欢迎来到天天文库
浏览记录
ID:40297199
大小:35.00 KB
页数:4页
时间:2019-07-30
《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);}}
此文档下载收益归作者所有