目录
1.设计目的
观察者模式属于行为设计模式,是一种发布-订阅的机制,可以为事件的发布者和订阅者解耦,无需修改发布者代码就能引入新的订阅者类,可以在运行时建立对象之间的联系。
2.设计UML
以 UI文本编辑为例:
UI输入变化后,将变化的字符串保存到日志文件中,同时也将该字符串发送给云端服务器
3.实现代码
见代码地址:https://github.com/luozichao324/Design-Patterns/tree/main/Listener/Listener
4.应用场景
a) 当一个对象状态的改变需要改变其他对象, 或实际对象是事先未知的或动态变化的时,可使用观察者模式;当你使用图形用户界面类时通常会遇到一个问题。 比如, 你创建了自定义按钮类并允许客户端在按钮中注入自定义代码, 这样当用户按下按钮时就会触发这些代码;再如:MQTT消息机制实现。
b) 当应用中的一些对象必须观察其他对象时, 可使用该模式。 但仅能在有限时间内或特定情况下使用。