码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2018-04-10 15:18:14      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:div   算法   col   声明   string   main   类型   style   实现类   

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

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

 

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

策略模式

标签:div   算法   col   声明   string   main   类型   style   实现类   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!