Java观察者模式如何实现,长尾词?

2026-04-13 03:191阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计331个文字,预计阅读时间需要2分钟。

Java观察者模式如何实现,长尾词?

4. 要素:

1.观察者模式涉及2个具体观察者。

2.观察者管理器接收到3个管理者。

3.管理者实现类5调用1次。

4.观察者接口包含4个方法。

2. 观察者接口:

javapublic interface Observer { /** 当目标类发生变化时执行的操作 */ String doSomething();}

4要素: 1观察者接口2具体的观察者3管理者接口4管理者实现类5调用

1观察者接口包含观察者行为方法

public interface Observer { /** * 当目标类发生变化时所执行的操作 * */ String doSomething(); }

2具体的观察者

//具体观察者A @Slf4j @Component("ObserverA") public class ObserverA implements Observer { @Override public String doSomething() { log.info("观察者A执行的业务操作"); return "观察者A执行的业务操作"; } } //具体观察者B @Slf4j @Component("ObserverB") public class ObserverB implements Observer { @Override public String doSomething() { log.info("观察者B执行的业务操作"); return "观察者B执行的业务操作"; } }

3管理者接口

Java观察者模式如何实现,长尾词?

public interface Subject { /* 添加观察者 */ void addGuanchazhe(Observer observer); /* 通知所有观察者 */ void notifyAllGuanchazhe(); }

4管理者实现类中包含--观察者集合,并对集合可以做增加或者移除操作

@Component @Slf4j public class SubjectService implements Subject { private List<Observer> observerList = new ArrayList<>(); @Override public void addGuanchazhe(Observer observer) { observerList.add(observer); } @Override public void notifyAllGuanchazhe() { log.info("目标状态发生变化,发送通知给所有观察者"); observerList.stream().forEach(a->a.doSomething()); } }

5调用

@RequestMapping("/guanchazhe") @RestController public class GuanchazheController { @Autowired Subject subject; @Autowired @Resource(name = "ObserverA") Observer observerA; @Autowired @Resource(name = "ObserverB") Observer observerB; @GetMapping("/test") public void test() { subject.addGuanchazhe(observerA); subject.addGuanchazhe(observerB); subject.notifyAllGuanchazhe(); } }

本文共计331个文字,预计阅读时间需要2分钟。

Java观察者模式如何实现,长尾词?

4. 要素:

1.观察者模式涉及2个具体观察者。

2.观察者管理器接收到3个管理者。

3.管理者实现类5调用1次。

4.观察者接口包含4个方法。

2. 观察者接口:

javapublic interface Observer { /** 当目标类发生变化时执行的操作 */ String doSomething();}

4要素: 1观察者接口2具体的观察者3管理者接口4管理者实现类5调用

1观察者接口包含观察者行为方法

public interface Observer { /** * 当目标类发生变化时所执行的操作 * */ String doSomething(); }

2具体的观察者

//具体观察者A @Slf4j @Component("ObserverA") public class ObserverA implements Observer { @Override public String doSomething() { log.info("观察者A执行的业务操作"); return "观察者A执行的业务操作"; } } //具体观察者B @Slf4j @Component("ObserverB") public class ObserverB implements Observer { @Override public String doSomething() { log.info("观察者B执行的业务操作"); return "观察者B执行的业务操作"; } }

3管理者接口

Java观察者模式如何实现,长尾词?

public interface Subject { /* 添加观察者 */ void addGuanchazhe(Observer observer); /* 通知所有观察者 */ void notifyAllGuanchazhe(); }

4管理者实现类中包含--观察者集合,并对集合可以做增加或者移除操作

@Component @Slf4j public class SubjectService implements Subject { private List<Observer> observerList = new ArrayList<>(); @Override public void addGuanchazhe(Observer observer) { observerList.add(observer); } @Override public void notifyAllGuanchazhe() { log.info("目标状态发生变化,发送通知给所有观察者"); observerList.stream().forEach(a->a.doSomething()); } }

5调用

@RequestMapping("/guanchazhe") @RestController public class GuanchazheController { @Autowired Subject subject; @Autowired @Resource(name = "ObserverA") Observer observerA; @Autowired @Resource(name = "ObserverB") Observer observerB; @GetMapping("/test") public void test() { subject.addGuanchazhe(observerA); subject.addGuanchazhe(observerB); subject.notifyAllGuanchazhe(); } }