小Q:什么是设计模式
慢慢:设计模式是系统服务设计中针对常见场景的一种解决方案,可以解决功能逻辑开发中遇到的共性问题。设计模式并不局限最终的实现方案,而是在这种概念模式下,解决系统设计中的代码逻辑问题。
小Q:什么是观察者模式?
慢慢:当对象存在一对多的依赖关系时,使用观察者模式,可以让一个对象的状态发生改变时,所有依赖的对象都被通知到并更新。
小Q:赶快上代码吧。
抽象观察者
public interface Observer {
void response();
}
具体观察者1
public Observer1 implements Observer {
public void response() {
System.out.println("具体观察者1做出反应")
}
}
具体观察者2
public Observer2 implements Observer {
public void response() {
System.out.println("具体观察者2做出反应")
}
}
抽象目标
public abstract class Subject {
protected List<Observer> observers = new ArrayList<>();
public void add(Observer observer) {
observers.add(observer);
}
public void remove(Observer observer) {
observers.remove(observer);
}
public abstract void notifyObserver();
}
实际目标对象
class ConcreateSubject extends Subject {
@Override
public void notifyObserver() {
System.out.println("目标对象发生变化");
for (Observer obs : observers) {
obs.response();
}
}
}
测试
public class Demo {
public static void main(String[] args) {
Subject subject = new ConcreateSubject();
Observer obs1 = new Observer1();
Observer obs2 = new Observer2();
subject.add(obs1);
subject.add(obs2);
subject.notifyObserver();
}
}
|