-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
package observer;
import java.util.ArrayList;
import java.util.List;
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void attach(Observer observer){
observers.add(observer);
}
public void detach(Observer observer){
observers.remove(observer);
}
protected void notifyObservers(){
for (Observer observer : observers){
observer.update(this);
}
}
}package observer;
public interface Observer {
void update(Subject subject);
}
package observer;
public class Weather extends Subject {
private String weather;
public String getWeather(){
return this.weather;
}
public void setWeather(String weather){
this.weather = weather;
notifyObservers();
}
}
package observer;
public class People implements Observer {
public String name;
public People(String name) {
this.name = name;
}
@Override
public void update(Subject subject) {
String weather = ((Weather)subject).getWeather();
System.out.println("现在的天气是 " + weather + ",需要换衣服了");
}
}
Metadata
Metadata
Assignees
Labels
No labels