策略模式很简单

三个角色

  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);
     }
}

是不是很简单!

你可能感兴趣的:(策略模式很简单)