设计模式.桥接模式(Bridge)

设计模式.桥接模式(Bridge)

ID:39683699

大小:1.80 MB

页数:33页

时间:2019-07-09

设计模式.桥接模式(Bridge)_第1页
设计模式.桥接模式(Bridge)_第2页
设计模式.桥接模式(Bridge)_第3页
设计模式.桥接模式(Bridge)_第4页
设计模式.桥接模式(Bridge)_第5页
资源描述:

《设计模式.桥接模式(Bridge)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设计模式(DesignPattern)张凯副教授计算机学院软件工程系问题(Problem)凭什么你的手机游戏我不能玩M品牌手机的游戏,N品牌不能玩不同品牌手机操作系统不同,软件不通用用程序模拟,N品牌手机,有一个游戏,运行游戏的程序如何写问题(Problem)staticvoidMain(string[]args){MobilePhoneNGamegame=newMobilePhoneNGame();game.Run();Console.Read();}classMobilePhoneNGame{publicvoidRun(){Console.WriteLine("运行N品牌手

2、机游戏");}}如果有一个M品牌手机,也有游戏可以运行,如何设计?问题(Problem)问题(Problem)classMobilePhoneGame{publicvirtualvoidRun(){}}classMobilePhoneNGame:MobilePhoneGame{publicoverridevoidRun(){Console.WriteLine("运行N品牌手机游戏");}}classMobilePhoneMGame:MobilePhoneGame{publicoverridevoidRun(){Console.WriteLine("运行M品牌手机游戏");}}如

3、果M品牌和N品牌手机,都添加了通讯录怎么办?问题(Problem)如果再添加Mp3音乐播放功能,怎么修改?问题(Problem)如果再添加S品牌手机,并且有相同功能,怎么修改?问题(Problem)怎么这么麻烦,换一种方式试一下问题(Problem)思考:为什么抽象了手机品牌,或抽象了手机软件,当需求变化时,感觉如此不稳定?违背了面向对象单一职责原则!!!主要内容模式动机与定义1模式结构与分析2模式实例与解析3模式效果与应用4桥接模式(Bridge)模式动机模式名称:桥接模式(Bridge)桥接模式的用意是“将抽象化(Abstraction)与实现化(Implementatio

4、n)脱耦,使得二者可以独立地变化”。这句话有三个关键词抽象化实现化脱耦桥接模式(Bridge)模式定义桥接模式(BridgePattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(HandleandBody)模式或接口(Interface)模式。桥接模式(Bridge)桥接模式(Bridge)解耦变化我们需要解耦这两个方向的变化,把它们之间的强耦合关系改成弱联系。我们把手机品牌和手机软件的实现分别当作两个独立的部分来对待。桥接模式(Bridge)这时对于手机品牌和手机软件这两个类都可以独立的变化了!我们要做的工作就是把这两部分

5、之间连接起来,那如何连接呢?Bridge使用了对象聚合的方式,像一座桥桥接模式(Bridge)abstractclassMobilePhoneSoft//手机软件{publicabstractvoidRun();}classMobilePhoneGame:MobilePhoneSoft//手机游戏{publicoverridevoidRun(){Console.WriteLine("运行手机游戏");}}classMobilePhoneAddressList:MobilePhoneSoft//手机通讯录{publicoverridevoidRun(){Console.Write

6、Line("运行手机通讯录");}}classMobilePhoneMP3:MobilePhoneSoft//手机MP3播放{publicoverridevoidRun(){Console.WriteLine("运行手机MP3播放");}}桥接模式(Bridge)//手机品牌abstractclassMobilePhoneBrand{protectedMobilePhoneSoftsoft;//设置手机软件publicvoidSetHandsetSoft(MobilePhoneSoftsoft){this.soft=soft;}//运行publicabstractvoidRun

7、();}//手机品牌NclassMobilePhoneN:MobilePhoneBrand{publicoverridevoidRun(){soft.Run();}}桥接模式(Bridge)staticvoidMain(string[]args){MobilePhoneBrandab;ab=newMobilePhoneN();ab.SetHandsetSoft(newMobilePhoneGame());ab.Run();ab.SetHandsetSoft(newMobilePhoneAdd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。