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