23種設計模式之策略

目錄

 

1.簡介

2.優點

3.缺點

4.形式


1.簡介

將每個算法都封裝起來,並使他們之間可以互換。主要採用的使面向對象的繼承和多態機制。

2.優點

由於都實現的是同一個接口,從而算法之間可以自由切換。具有良好的擴展性。

3.缺點

每一個策略都是一個類,複用的可能性很小,類數量增多。並且需要對外暴露所有的策略類,這違背了LKP。可通過工廠,代理等修正。

4.形式

抽象策略

public interface IStrategy {
    public void method();
}

具體策略1

public class Strategy1 implements IStrategy {
    public void method() {
        System.out.println("策略1");
    }
}

具體策略2

public class Strategy2 implements IStrategy {
    public void method() {
        System.out.println("策略2");
    }
}

封裝策略

public class Context {
    private IStrategy strategy = null;
    public Context(IStrategy _strategy) {
        this.strategy = _strategy;
    }
    public void cMethod() {
        this.strategy.method();
    }
}

測試類

public class Test {
    public static void main(String[] args) {
        IStrategy strategy = new Strategy1();
        Context context = new Context(strategy);
        context.cMethod();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章