设计模式-策略模式

介绍

策略模式定义一系列算法,并使它们可以相互替换。让算法独立于使用它的客户而独立变化。

使用场景
1.同一类型问题有多种处理方式,仅仅是具体行为有差别时。
2.系统需要封装同类型一系列操作。
3.需要动态选择几种算法中的一种。

优点
1.结构清晰、使用简单直观。
2.耦合度相对而言较低,扩展方便。
3.操作封装更为彻底,数据更为安全。

缺点
1.随着策略的增加,子类也会变得繁多

UML类图

代码实现

Sort.java

public abstract class Sort {

    public abstract void method();
}

QuickSort.java

public class QuickSort extends Sort {

    @Override
    public void method() {
        System.out.println("This is QuickSort!");
    }
}

SelectionSort.java

public class SelectionSort extends Sort {

    @Override
    public void method() {
        System.out.println("This is SelectionSort!");
    }

}

Main.java

public class Main {

    public static void main(String[] args) {
        Sort sort = select("SELECTION");
        sort.method();
    }

    private static Sort select(String type) {
        if (type.equals("SELECTION")) {
            return new SelectionSort();
        }else if (type.equals("QUICK")) {
            return new QuickSort();
        }
        return null;
    }
}

你可能感兴趣的:(设计模式-策略模式)