下载此文档

设计模式应用PPT课件.ppt


文档分类:办公文档 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
设计模式应用
西南科技大学计算机科学与技术学院
陈念年
2012年秋季学期
1
-
设计模式
案例
地雷战中,鬼子进村了,哨兵需要及时的通知乡亲们撤离、游击队准备战斗、地雷挂线....
电影《地雷战》海报
地雷战中使用的地雷
“不见鬼子不挂弦!”
2
-
设计模式
解决思路1
鬼子、哨兵、乡亲、游击队、地雷....,抽象成独立的类
哨兵类与包含乡亲、游击队、地雷等对象,鬼子来的时候遍历调用个对象的对应函数行为。
Code Using C++
3
-
设计模式
问题:如果地下党同志来了,还需要通知他?
解决:加对象,改函数。-->硬编码
B的变化直接导致A的变化,因为A依赖一个B的具体对象。
强耦合,造成软件很难灵活抵御需求带来的变化与更改。
A
B
解决:依赖倒转,面向接口编程。不要依赖一个对象,去依赖一个抽象或接口。
A
IB
B
4
-
设计模式
解决思路2
对通知(依赖)目标对象进行抽象。乡亲与游击队的函数可能差别很大(名字、参数),但是一点,他们的功能是一样的,就是对鬼子进村做出相应。——>抽象
依赖抽象,使得结构耦合度降低
Code Using C++
5
-
设计模式
思路2进一步的:
哨兵有明哨、暗哨、连环哨.....
哨兵的一些功能是变化的,怎么办?
解决:抽象哨兵
一个对象不稳定,一定要去把对象分出稳定部分或者不稳定部分。
6
-
设计模式
观察者模式UML结构
7
-
设计模式
一种发布-订阅模型
Observer模式使得可以独立地改变目标与观察者,从而使两者之间的依赖关系达到松耦合。
目标发送通知时,无需指定观察者,通知会自动传播。观察者自己决定是否需要订阅通知,目标(Subject)对象对此一无所知。
定义对象间的一种一对多的依赖关系(可以一对一),以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
——《设计模式》GoF
8
-
设计模式
现在有一个游戏很流行:坦克世界。
假如我们要在游戏中开发一种坦克,除了各种不同型号的坦克外,希望可以在根据不同作战场合中为坦克炮增加一种或多种发射功能:比如发射破甲弹(HE),发射炮射导弹(Missile),发射激光(Laser)。
进一步:提供红外夜视功能,自动瞄准,水陆两栖,自动防御系统等。
9
-
设计模式
解决方法1:继承方式
10
-

设计模式应用PPT课件 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人邱哈哈
  • 文件大小2.29 MB
  • 时间2022-01-07