策略模式
Posted zoujiejun96
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了策略模式相关的知识,希望对你有一定的参考价值。
策略模式定义:定义算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
针对接口编程而非针对实现编程,可把需要实现的算法类型定义为一个接口,如现有接口
interface Sort(){ void sort(); }
然后编写它的实现类,如Class QuickSort()、Class ShellSort()等实现类通过不同的方式实现了接口方法。在需要调用该算法的地方把其声明为一个接口,然后用不同的实现类来实例化,如:
Sort sort = new QuickSort(); sort.sort();
从而充分运用多态,加强程序可拓展性;
如某类需要排序算法:
1 class data{ 2 private Sort sort; 3 4 data(Sort sort){ 5 this.sort = sort; 6 } 7 8 public void sort(){ 9 sort.sort(); 10 } 11 12 public static void main(Strings[] args){ 13 Data data = new Data(new QuickSort()); 14 data.sort(); 15 } 16 }
运用策略模式可以动态改变行为,如在main中把QuickSort换成ShellSort,可以使Data类运用不同的方法进行排序,但却不用对Data类做出任何的改动。
以上是关于策略模式的主要内容,如果未能解决你的问题,请参考以下文章