욱'S 노트

Observer - 자신의 상태를 전달하기 본문

Methdology/Design Pattern

Observer - 자신의 상태를 전달하기

devsun 2012. 4. 26. 18:37
When Using It

자신의 상태에 변화가 일어났을 경우 Observer들에게 통보하기

Class Diagram


Sample Code



public interface Observer {

public void update(Subject subject);

}


public class ConcreteObserver implements Observer {

@Override

public void update(Subject subject) {

System.out.println(subject.getState());

}

}


public abstract class Subject {

private List<Observer> observers = new ArrayList<Observer>();

public void attach(Observer observer) {

observers.add(observer);

}

public void detach(Observer observer) {

observers.remove(observer);

}


public void notifies() {

for (Observer observer : observers) {

observer.update(this);

}

}

public abstract void execute();

public abstract String getState();

}



public class ConcreteSubject extends Subject {

private String state;


@Override

public void execute() {

state = "GOOD";

notifies();

}


@Override

public String getState() {

return state;

}

}


Caution


특별한 주의사항은 없다.
Comments