策略模式很简单

三个角色

  1. 抽象策略角色,是一个抽象类或者接口。
  2. 具体策略角色, 继承或实现抽象策略。
  3. 环境角色,环境角色需要用到抽象策略,策略具体的执行由具体策略来实现。

例子

抽象角色为 排序接口:

public interface SortAlgorithm {
     void sort(int[] arr);
}

具体实现类1,快速排序

public class QuickSort implements SortAlgorithm {
     public void sort(int[] arr) {
          //xxxxxxxxx
     }
}

具体实现类2,冒泡

public class BubbleSort implements SortAlgorithm {
     public void sort(int[] arr) {
          //xxxxxxxxx
     }
}

环境角色,其实就是拥有策略接口的类,这个类会调用接口的策略方法,具体的实现由传入的策略是实现。

public class Context  {
     private SortAlgorithm sortor;
          
     public Context(SortAlgorithm sortor) {
           this.sortor = sortor;
     }
     public void sort(int[] arr) {
           this.sortor.sort(arr);
     }
}

是不是很简单!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容