`
iloveoracle
  • 浏览: 114677 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

设计模式生活实例

阅读更多
    &nbsp;&nbsp;&nbsp; 本文以生活场景中的实例来分析常见的设计模式,试图以一种通俗易懂的方式来解读设计模式。每个设计模式的分析从以下5个点进行阐述:<br />1、 <strong>定义</strong>:四人帮的《设计模式》书中对该设计模式的定义。<br />2、 <strong>实例</strong>:生活场景中的实例抽象。<br />3、 <strong>原始场景</strong>:实例中不带有设计模式思想的原始场景介绍。<br />4、 <strong>模式场景</strong>:实例中带有此设计模式思想的场景介绍。<br />5、 <strong>应用模式后的场景解析</strong>:将应用了设计模式思想的场景中的对象、事物与定义中的概念做映射对比,从而能更形象的理解此设计模式。<br /><span style="font-size: medium"><strong><span style="color: red">一、 观察者模式</span></strong></span><br />1. <strong>定义</strong>:定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。<br />2. <strong>实例</strong>:上班时间玩游戏<br />3. <strong>原始场景</strong>:上班时间,很多人在老板出门办事不在的时候玩游戏,同时每个玩游戏的人又得留意着老板回来,只要老板一回来赶紧关闭游戏开始工作。<br />4. <strong>观察者模式场景</strong>:上班时间,很多人在老板出门办事不在的时候玩游戏,这些玩游戏的人叫前台秘书专门留意着老板回来,只要老板一回来这个前台秘书就通知玩游戏的人,然后玩游戏的人就赶紧关闭游戏开始工作。<br />5. <strong>应用模式后的场景解析</strong>:<br /><table class="bbcode"><tr><td><strong>场景中的object</strong></td><td><strong>定义中的概念</strong><tr><td>那些老板不在时玩游戏的人</td><td>多个观察者对象<tr><td>前台秘书</td><td>主题对象<tr><td>老板是否回来</td><td>状态<tr><td>老板回来了</td><td>状态发生变化<tr><td>前台秘书就通知玩游戏的人</td><td>通知所有观察者对象<tr><td>玩游戏的人赶紧关闭游戏开始工作</td><td>他们能够自动更新自己</table><br /><span style="font-size: medium"><strong><span style="color: red">二、 适配器模式</span></strong></span><br />1. <strong>定义</strong>:将一个类的接口转换成客户希望的另一个接口。adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以在一起工作。<br />2. <strong>实例</strong>:外籍球员打球<br />3. <strong>原始场景</strong>:姚明去nba打球,因为不懂英语不能和教练正常交流。<br />4. <strong>适配器模式场景</strong>:姚明不懂英语,去nba打球,为了能和教练交流,姚明请了个翻译,通过翻译姚明能和教练正常交流。<br />5. <strong>应用模式后的场景解析</strong>:<br /><table class="bbcode"><tr><td><strong>场景中的object</strong></td><td><strong>定义中的概念</strong></td></tr><tr><td>外籍球员(姚明)</td><td>一个类的接口</td></tr><tr><td>客户</td><td>教练</td></tr><tr><td>客户希望的另一个接口</td><td>翻译</td></tr><tr><td>姚明和教练不能正常交流</td><td>接口不兼容而不能一起工作</td></tr><tr><td>姚明不懂英语,不能和教练正常交流,通过翻译姚明能和教练正常交流</td><td>由于接口不兼容而不能一起工作的那些类可以在一起工作</td></tr></table><br /><span style="font-size: medium"><strong><span style="color: red">三、 备忘录模式</span></strong></span><br />1. <strong>定义</strong>:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。<br />2. <strong>实例</strong>:打游戏<br />3. <strong>原始场景</strong>:玩通关游戏,玩到某一关失败了,又得重头再来。<br />4. <strong>备忘录模式场景</strong>:玩通关游戏,玩的过程中及时的保存游戏,失败后就重新载入最近保存的游戏接着再玩。<br />5. <strong>应用模式后的场景解析</strong>:<br /><table class="bbcode"><tr><td><strong>场景中的object</strong></td><td><strong>定义中的概念</strong></td></tr><tr><td>通关游戏</td><td>对象</td></tr><tr><td>游戏中的人物、场景、生命力、战斗力等</td><td>对象的内部状态</td></tr><tr><td>保存游戏</td><td>保存这个状态</td></tr><tr><td>重新载入最近保存的游戏</td><td>将该对象恢复到原先保存的状态</td></tr></table><br /><span style="font-size: medium"><strong><span style="color: red">四、 外观模式</span></strong></span><br />1. <strong>定义</strong>:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。<br />2. <strong>实例</strong>:炒股<br />3. <strong>原始场景</strong>:投资者自己选择各种股票去买。<br />4. <strong>外观模式场景</strong>:投资者选择一个基金会,由基金会帮助投资者选择股票,投资者不用再去了解各种股票以确定选择,具体选择什么股票交由基金会负责。<br />5. <strong>应用模式后的场景解析</strong>:<br /><table class="bbcode"><tr><td><strong>场景中的object</strong></td><td><strong>定义中的概念</strong></td></tr><tr><td>选择各种股票投资</td><td>子系统</td></tr><tr><td>各种股票</td><td>一组接口</td></tr><tr><td>基金会</td><td>一致的界面、高层接口</td></tr><tr><td>投资者不用再去了解各种股票以确定选择,具体选择什么股票交由基金会负责</td><td>使得这一子系统更加容易使用</td></tr></table><br /><br /><br /><span style="font-size: large"><strong>(未完待续……)</strong></span><br /><br /><br /><br /><br /> 
分享到:
评论

相关推荐

    23个设计模式源码案例.zip

    《大话设计模式》这本书,通过各种生活中的例子,在小菜和大鸟的不断提问与回答过程中,对程序的不断重构演变,学习设计模式在案例中的适用性,更进一步掌握设计模式的异同和关键点。 ## 使用说明 &emsp;&emsp;...

    Java设计模式案例(雷惊风)

    包含不到二十种常用设计模式案例,java语言实现,通俗易懂,根据生活实际情况编写

    设计模式手册非常好!带有很多实际例子!

    设计模式手册非常好!每个模式都有多个代码实例,非常容易懂。

    深入浅出设计模式中文版【11章】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    深入浅出设计模式中文版【13章、附录】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    设计模式总结 考试复习资料

    本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是如何解决的,掌握它的结构图,记住它的关键代码;能够想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优...

    深入浅出设计模式中文版【12章】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    软件设计模式——享元模式设计报告

    用享元模式分析并实现一个具体案例。在一家咖啡店中客户每买一杯咖啡,咖啡制做系统就相应地创建该杯咖啡的配料表,并将其发送给店内的咖啡制做机,咖啡制做机接收到系统发送的配料表后便开始制造客户所买的咖啡。...

    Head First设计模式

    作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。 全书用两章篇幅对设计...

    如何学好设计模式.zip

    如何学好设计模式 现如今网上和书上都有大量的设计模式的教程,... 生活中的例子的确可以帮助我们理解设计模式,这是毋庸置疑的,但是想要真正用好设计模式,实际项目中的案例是必不可少的,这也是我分享这个资料的原

    行为型模式+结构型模式+创建型模式:三大设计模式实例剖析与深入解读

    行为型模式+结构型模式+创建型模式:三大设计模式实例剖析与深入解读 行为型模式 备忘录模式 +结构型模式 创建型模式总结 +创建型模式

    深入浅出设计模式高清晰版迅雷下载地址

    作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。 全书用两章篇幅对设计...

    深入浅出设计模式中文版【9章】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    深入浅出设计模式中文版【8、10章】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    深入浅出设计模式中文版【6-7章】

     作者用C#和Java两种语言,借助现实生活范例和图片演示,全面阐释GRASP及GoF 23种设计模式的概念及其编程应用,帮助你领悟设计模式的思想及精华,并将其融会贯通、灵活应用到自己的开发过程中。  全书用两章篇幅对...

    javascript设计模式 – 装饰模式原理与应用实例分析

    本文实例讲述了javascript设计模式 – 装饰模式原理与应用。分享给大家供大家参考,具体如下: 介绍:装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。在现实生活中,这种情况也到处存在,...

    软件设计模式作业 结构型设计模式

    采用同一套网店模板的网店除了里面所展示的内容不一样以外,网店的风格样式几乎一致,除了一些定制化的功能,比如logo等,请使用享元模式来模拟此问题,绘制享元模式类图,并绘制该实例的类图,并编写代码演示结果。

    c#设计模式之简单工厂

    本资料通过生活案例和具体事例讲解简单工厂设计模式的原理以及应用,对于初学者非常有用

    设计模式——6大软件设计原则(demo案例实现,附带解析,快速掌握软件设计原则的精髓)

    使用了一个个的demo案例,以通俗易懂的生活案例解析软件开发设计原则,掌握开发细节。写出耦合度低、易于扩展、更容易维护的优质代码 代码中的注释信息,通俗易懂,凝结了本人的思考,让你更快掌握软件设计的基本...

Global site tag (gtag.js) - Google Analytics