| 目次 |
|---|
|
・Strategy ・Strategy適用前のソース ・Strategyのインターフェース ・Strategyのインターフェースを実装したカプセル化クラス1 ・Strategyのインターフェースを実装したカプセル化クラス2 ・StrategyのMainクラス |
public class strategyMain {
public static void main(String[] args) {
if(条件){
// 処理1
}else{
// 処理2
}
System.out.println(処理1か処理2の結果);
}
}
上記クラスの処理1と処理2の部分をそれぞれカプセル化します。この時、カプセル化したクラスに対してインターフェースを適用します。
public interface strategyI {
String getMessage();
}
次にこのインターフェースをimplementしたアルゴリズムをカプセル化したクラスを作成します。
public class strategy01 implements strategyI{
public String getMessage(){
return "a";
}
}
public class strategy02 implements strategyI {
public String getMessage(){
return "b";
}
}
public class strategyMain {
public static void main(String[] args) {
strategyI st = null;
if(true){
st = new strategy01();
}else{
st = new strategy02();
}
System.out.println(st.getMessage());
}
}
Mainクラスではインターフェースの変数にオブジェクトを格納することができるようになるので、Mainクラスではアルゴリズム部分を気にする必要がありません。