-
观察者模式流程图查看全部
-
两种模型的比较: 推模型是假定目标对象知道观察者需要的数据 拉模型是目标对象不知道观察者具体需要什么数据,因此把自身传给观察者,由观察者来取值。查看全部
-
拉模型 目标对象在通知观察者的时候,只传递少量信息。 如果观察者需要更多具体的信息,由观察者主动到目标对象中获取,相当于是观察者从目标对象中拉数据。 一般这种模型的实现中,会把目标对象自身通过update方法传递给观察者。查看全部
-
推模型: 目标对象主动向观察者推送目标的详细信息 推送的信息通常是目标对象的全部或部分数据查看全部
-
观察者模式调用时序之运行阶段查看全部
-
观察者模式调用时序之准备阶段查看全部
-
在目标的实现类中先根据状态的情况进行判断 如果满足的话再判断 观察者的名字然后再进行更新查看全部
-
在观察者的接口中要有获取和设置观察者名字的方法,因为在目标类中需要知道观察者的名字然后再根据名字进行不同的处理查看全部
-
区别对待的观察者模型中和通用观察者模型的却别在于要根据不同的观察者来进行不同的推送,所以区别在于目标类中的统治方法需要在具体的目标类中进行实现。(因为需要根据不同的情况进行更新,所以需要在具体的目标类中实现刚刚那个方法)查看全部
-
实现的步骤查看全部
-
模型分为推模型和拉模型: 推模型 是目标类根据不同的观察者需求来推送不同的内容给观察者,所以如果出现新的观察者有新的需求就要修改update方法了,所以扩展性不好 拉模型 是目标类直接把自己本身发送给观察者,让观察者自己从里面获取想要的数据,扩展性更好查看全部
-
运行阶段查看全部
-
观察者和目标类的关系可以是一对多,也可以是一对一,也可以是一个观察者对多个目标类。(观察者可以响应不同目标类的事件),目标类的命名应该以Subject结尾,而观察者类应该以Observe结尾。在具体的目标类中改变状态要在调用通知之前。查看全部
-
具体的应用步骤: 1:创建目标(实例化目标类) 2:创建和设置观察者(实例化观察者并且设置观察者的字段) 3:调用目标实例的添加方法把观察者加入目标类的观察队列中 4:改变目标类的状态查看全部
-
实现观察者类的Update方法,用来从目标对象中接收消息,并且打印消息查看全部
举报
0/150
提交
取消