设计模式Observer

目录

[TOC]来生成目录:

启发:

订阅

一个帅哥来到报社,跟报社的人说, “嗨,我买一份最新的报纸”;

一位漂亮的前台小姐说“”先生,抱歉,最新的报纸还没有来呢。“”

帅哥很不耐烦的说“你们啥时候来最新的呀,我都来了好几次了,也没有,以后不来你们这买了。”

美女赶忙说道“真的很抱歉,这个新报纸的时间我们也没法确定,要不这样吧,你“”订阅“”报纸吧,只要留下你的手机号就好,然后如果有新的报纸来,我们就立刻通知你了,而且现在订阅还有礼品送呢,你感觉呢?”

帅哥笑着说“这个主意不错呢,省的我来回跑了,而且还有优惠”。然后高兴地写下他的联系方式,离开了;

后面陆续的来了好几个人,也在报社进行了报纸的“”订阅“”。终于,新报纸到了,前台小姐依次的通知了订阅报纸的人,他们都高兴地拿到了报纸;

从这里,报社和订阅者产生了一对多的依赖关系,报纸有新的报纸的时候,就会通知订阅者;是不是感觉跟设计模式–观察者有点相同呢。不错,这就体现了“观察者模式”的设计理念;


定义:

观察者模式定义了一对多依赖,这样,当一个对象改变状态时,它所有的依赖者都会收到通知并自动更新;

类图:

这里写图片描述

报社故事又继续了,好多的订阅者找到报社,叽叽喳喳的,前台小姐听了半天,终于听出了,原来是报社每次更新的多种报纸,但是不管是哪种报纸更新,都会给订阅者发送消息,这样,可能会给订阅者造成打扰。于是报社换了另一种方式,当报社有新的报纸的时候,订阅者主动来拿取自己订阅的报纸类型,这样就不会对于观察者造成打扰了。这就是Java 内置观察者模式。

Java内置观察者类图:

思考:

1。java内置的观察者相对于第一个的不同?怎么体现的?有什么好处?

2。抽象类和接口的区别?各自有什么好处?

3。为什么提倡“”针对接口编程,而不针对实现编程“”?

4。java 中this代表什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值