设计模式:解决某些类似的效果模式。
观察者模式是java 23种设计模式中非常优秀的设计模式,它定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有依赖与此对象的那些观察者对象,使这些观察者能够自动更新。
观察者模式中主要由两部分构成:
1. 被观察的目标对象(Subject):
特点:抽象类
(1) 以集合作为属性用来绑定观察者
(2) 编写一个方法用来添加观察者
(3) 编写一个方法通过遍历集合调取观察者的更新方法来实现通知效果
(4) 目标对象被观察事件的抽象方法
2. 观察者(Observer):
特点:接口
(1) 观察者的自定义属性
(2) 编写一个方法用来对被通知的事件的处理
观察者模式的优缺点分析:
1. 优点:观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。并且观察者和被观察的目标对象之间的耦合度不高。
2. 缺点:由于观察者的更新方法和被观察的目标对象的时间方法是上层接口和抽象方法的实现,所以方法上下的参数传递性不强。