23种设计模式(未完待续4)

观察者模式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mOsdRsYO-1585063358915)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585024519689.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EsHw4mIs-1585063358918)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585024497524.png)]

这是气象站主动调用得到最新数据,然后提供给第三方。

也可在weatherData这个核心类中维护第三方的对象,例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yt0NoF3A-1585063358919)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585024770672.png)]

一旦核心类中的天气数据发生变化,则利用第三方(CurrentCondition)的对象调用第三方的update,display方法更新。实现推送。

普通方案代码:

第三方类(气象站自己的网站):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Awc10gC1-1585063358921)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025068942.png)]

核心类:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04ObQtMn-1585063358923)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025356957.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdTjNt8S-1585063358926)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025560006.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TM1QWTaE-1585063358928)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025702019.png)]

引入:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4msFsdSt-1585063358930)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025911413.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uecA5Ggk-1585063358932)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585025999027.png)]

观察者模式实现天气预报:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rYxEbgoZ-1585063358933)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585026404161.png)]

抽象的核心类接口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cnjwsjC1-1585063358934)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585027728403.png)]

具体的核心类:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f0zIZH0s-1585063358936)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585027370621.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BgmdOeIy-1585063358937)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585027054015.png)]

观察者接口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pG3bxL4d-1585063358941)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585026726286.png)]

具体的观察者:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7seyhuM1-1585063358942)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585026845814.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3WyZlGa-1585063358944)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585027507043.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEzU7Jr5-1585063358945)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585027516500.png)]

中介者模式:

理解:减少子系统之间的交互,耦合。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ay68VCgb-1585063358947)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585028652932.png)]

在这里插入图片描述
在这里插入图片描述
原理类图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wAo5r9q2-1585063358951)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585030300714.png)]

中介者模式实现智能家庭管理:

实现的类图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1mS6n3J2-1585063358952)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031151238.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a3N8qHKF-1585063358953)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031294581.png)]

具体的同事类:

闹钟:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zHeKLWX-1585063358955)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031490272.png)]

窗帘:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ALJHteAr-1585063358956)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031515527.png)]

TV:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6IbMvTgc-1585063358957)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031553694.png)]

抽象的中介者类:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M5o5CKF6-1585063358958)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031633511.png)]

具体的中介者:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rOGd7Uaa-1585063358959)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031683090.png)]

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eKPf3Q2d-1585063358963)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1585031918323.png)]

在这里插入图片描述

备忘录模式:

在这里插入图片描述
运原理类图:

在这里插入图片描述

在这里插入图片描述

备忘录类:

在这里插入图片描述

存储许多备忘录对象的类:

在这里插入图片描述

测试:

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值