ステップアップ学習(3.14)Strategy Patternポリシーモード


1、ポリシー・モードとは
1.1所期の目的を達成していない各種対応策
1.2プログラムコードの各ブランチはポリシーと呼ぶことができ、ポリシーモードは、動作を特定のクラスに分け、クラスオブジェクトを使用して動作を区別する.
 
2、メリットとデメリット
2.1 IF構文の使用を減らし、コードをカプセル化し、メンテナンスを容易にする
2.2もっと良い約束協議が必要で、さもなくばIF文はやはり欠かせない、例えばどのように異なる具体的な策略を生成して、約束がなければ、IFは一つも欠かせない.
2.3ポリシークラスの増加、複数のIF ELSE、最適化されたポリシークラスの増加
 
3、上コード
public abstract class IStrategy {

    protected String name;

    //         
    public abstract String productList();
}

public class StrategyA extends IStrategy {

    @Override
    public String productList() {
        return "   xxx";
    }
}

public class StrategyB extends IStrategy {

    @Override
    public String productList() {
        return "  xxx";
    }
}

public interface IExecute {

    //      ,   ,           
    void shoppping(IStrategy strategy);
}

public class Execute implements IExecute {
    @Override
    public void shoppping(IStrategy strategy) {
        System.out.println("  :" + strategy.name + "||" + strategy.productList());
    }
}

public class Main {

    public static void main(String[] args) {
        IStrategy a = new StrategyA();
        a.name = "A  ";
        IStrategy b = new StrategyB();
        b.name = "B  ";

        IExecute execute = new Execute();
        execute.shoppping(a);
        execute.shoppping(b);
    }
}

//=================================
  :A  ||   xxx
  :B  ||  xxx

Process finished with exit code 0