美文网首页
设计模式-策略模式

设计模式-策略模式

作者: liuzhimi | 来源:发表于2019-04-16 16:41 被阅读0次

    介绍

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

    使用场景
    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;
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式-策略模式

          本文链接:https://www.haomeiwen.com/subject/bqibwqtx.html