私は実際に質問のためにあなたの助けが必要です:パターンオブザーバーの正しい実装。実際のところ、私は正しいことを保証していないので、UMLと下のコードの間に矛盾があるかどうかを知りたいのですが、両者の最小の間違い/改善可能な詳細を報告してください。私は誰にでも感謝するでしょう、事前に感謝します。Observer Uml&Java
UML:
Javaコードは:
public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObservers();
}
public class ConcreteSubject implements Subject {
private int my_state;
private ArrayList<Observer> observers;
public ConcreteSubject(){
observers=new ArrayList<Observer>();
}
public void registerObserver(Observer o){
observers.add(o);
}
public void removeObserver(Observer o){
observers.remove(o);
}
public void notifyObservers(){
for(Observer o : observers)
o.update();
}
//PULL Mode -> Observer musts grab the state of the subject
public int getState(){
return my_state;
}
public void setState(int state){
my_state=state;
}
}
public interface Observer {
public void update(); //In PULL mode update don't need the state of the subject in argument
}
public class ConcreteObserver implements Observer {
private ConcreteSubject my_subject;
public ConcreteObserver(ConcreteSubject subject){
my_subject=subject;
}
public void update(){
System.out.println("The state is: "+my_subject.getState());
}
}
https://en.wikipedia.org/wiki/Observer_pattern –