首页 > 其他 > 详细

策略模式

时间:2018-04-10 14:36:35      阅读:235      评论:0      收藏:0      [点我收藏+]

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

针对接口编程而非针对实现编程,可把需要实现的算法类型定义为一个接口,如现有接口

 

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类做出任何的改动。

策略模式

原文:https://www.cnblogs.com/zoujiejun96/p/8778290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!