State パターンAdvertisement状態をクラス化する
状態をクラスとして表す。コード中に状態を判定するif文を記述する必要がなくなるため、コードの可視性が向上する。状態を追加する際に、コードを修正する必要がない。などのメリットがある。
サンプルコード
インタフェース state
public interface State {
public void draw();
}
Square クラス
public class Square implements State {
public void draw() {
System.out.println("■");
}
}
Triangle クラス
public class Triangle implements State {
public void draw() {
System.out.println("▲");
}
}
Pen クラス
public class Pen {
private State state;
public Pen(){
this.state = new Triangle();
}
public void draw(){
state.draw();
}
public void setState(State state){
this.state = state;
}
}
Main クラス
public class Main {
public static void main(String[] args){
Pen pen = new Pen();
pen.draw();
pen.setState(new Square());
pen.draw();
pen.setState(new Triangle());
pen.draw();
}
}
実行結果 ▲ ■ ▲ クラス図
Advertisement |
ショートカット・634トップページ・このカテゴリのトップページに戻る ・634ラボ サイト検索Y!ログール |