Java設計モード--ポリシーモード
1051 ワード
また、クラスの動作またはそのアルゴリズムは、実行時に変更できる動作型モードの1つにも属します.単純な実装
環境クラス(対外的に統合インタフェースを提供)
ポリシーインタフェース
具体的なポリシー
テストクラス
環境クラス(対外的に統合インタフェースを提供)
public class Context {
private Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public int request(int req) {
return state.doAction(req);
}
}
ポリシーインタフェース
interface Strategy {
int doAction(int req);
}
具体的なポリシー
public class AddStrategy implements Strategy{
@Override
public int doAction(int req) {
return req + req;
}
}
public class MultiStrategy implements Strategy{
@Override
public int doAction(int req) {
return req * req;
}
}
テストクラス
public static void main(String[] args) {
Strategy strategy= new Strategy();
strategy.setStrategy(new AddStrategy ());
System.out.println(context.request(10));
strategy.setStrategy(new MultiStrategy ());
System.out.println(context.request(10));
}