`
txf2004
  • 浏览: 7041235 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

软件设计模式的非软件例子(三)

阅读更多
行为模式--描述类和对象怎样交互和怎样分配职责
作者总结了十一种行为模式。这些模式可以在硬币分类银行、馆订餐、音乐运输、汽车修理、自动售货机和家庭建筑中找到例子。
职责链Chain of Responsibility)举例
模式使个对机会求,免请送者者之合关械硬币分使用。这是为硬币个滑是仅使个滑硬币,硬被银内部的机械导向至适当的接收盒。
13使用硬币分拣例子的职责链模式对象图
命令Command)模式
式将求封个对而使使用请求进行。用账单是命的一。服受顾单,在账封装单被待烹意这里的“账是不依赖于菜单的,它可以被不同的顾客使用,因此它可以添入不同的点单项目。(关于这个实例的详细解析见我的那篇从“在快餐店吃饭”到Command模式(一)
14:使用用餐例子的命令模式对象图
解释器Interpreter)举例
解释器模式定义了特定语言的文法示和解释该文法的解释器。音乐是解释器的例子。音阶和的持续时间可以用五线谱上的符号表这些符号就是音乐语言[14]音乐家按照乐谱演奏就可以反复重现同样的音乐。
15:使用音乐例子的解释器模式对象图

迭代器Iterator)举例
迭代器提供一种方法顺序访问一个合对象中各个元素,而又不需要露该对象的内
部表示。在期的电视机中一个拨盘用来改变频当改变频道时需要手工转动
拨盘移过每一个频道而不论这个频道是否有信号。电视使[一个][
]按钮。当按下[一个],将下一的频象一下在
店中。当道时的不道,目内果对
道的目不兴趣,那么可以换下一个频道,而不需要知道它是几频道。
16:使用选频器作例子的迭代模式对象图
中介者(Mediator)举例
模式中介控制的对。通者实对象松散而不是彼作用。机场的控好地这种模式。降落飞的接与讯,彼此直接可以降落台决定的。这里意的并不个飞。它飞机机场近的区域。
17:使用训练中心为例子的中介者模式
备忘录Memento)举例
模式且在存一的内,使可以恢复状态式通常体自己车的。首两边,露刹车能卸,这片作一个忘录来表明刹车是怎样安装在这片修理完成后才可以卸下另一当第二片卸下时第一片就成了备忘录。
18:使用刹车片例子的备忘录模式对象图
观察者(Observer)模式
定义间一关系个对态变所有的对到通自动地更卖演种模个投有一数字用于出价。拍卖拍卖观察否有子举起出价每次接受一个新的出价都改变了拍卖的当前价格,并且广播给所有的投标人进行新的出价。(有关观察者模式在我的那篇倾听来自观察者模式中两个成员的经典对话。。。有详细介绍
19:使用拍卖例子的观察者模式
状态(State)模式
式允对象部状时改行为。这种模式自动上观察到。自动售货态包品清款,选择几种状态。当投并选个商自动货机以下作,送出找钱、送出商品、由不足商品、由于商品完不出商品。
20:使用自动售货机例子的状态模式对象图
策略Strategy)模式
式定系列互替算法到飞的方一个式的例子。有几种选己开出租机场班车、乘公或使服务等等。对于场,直升也是能的选择。任何一种方式都可以把你送到机场,它们可以相互代替。你必须根据价格便利性和时间做出选择。
21:使用去机场作为例子的策略模式对象图
模板方法Template Method)举例
法定个操法的而将骤延类中。房屋建筑发新会使用模。一的规一些面图平面了不。在面图地基结构、上下水和走线对于每个房间都是一样的只有在建筑的后期才开始有差别而产生了不同的房屋样式。
22:使用建筑平面图为例子的模板方法模式
访问者(Visitor)举例
访模式个作象结元素,定操作改变的类式可以在公司中观察到。当一出租打电他(成了有顾一员后公指定一辆车去服(接受访问者在进入出租车之后这个(访问者就不再控制(她的旅程了而是由出租车(驾驶员)负责。
23:使用出租车例子的观察者模式对象图
意义
作者已经表明了软件设计模式的非软件例子的存也许有人想知道这些例子的实际意非软件例子有助于增进模式语言的表达力和辅助模式的学习。
增加模式语言的表达能力
Alexander 觉得真式要种通言以便人都[2]件设群中认为是在同事之间一种约定俗成的开发方式[417]模式提供了一种比模块过程和对象更高层次的概念[10]
一种语言中至关重要的因素是同语言形象所对应的心灵影在一种语言中仅当一个人能够领会一个符号的含义能够在心里描绘出这种含义时这个符号的外形才是有意义的[7]Alexander没有忽视模式语言的这种重要特征,他规定:一种语言只有在它所产生的建筑类型能够被具体地看到之后,这种语言才是完全形态化的[1]在软件设计中,Richle Züllighoven认识到具体的例子在指导我们对应用领域的理解的重要性[12]
如果软件设计模式成为程序员中通用的语言其基础则是统一的含义如果设计决定下达了但是没有被理解,则设师被迫通假设来完工作[19]平凡的例子便于理解其原因在人们必须记忆中找的内容才能够理解[20]。在广泛使用模式的AGComm nicationSystems司的项目中,常常使用非软件例子来解之间。这有助计师统一。通计过期建的理,使在整个项目生命周期中,设计师间的沟通更加容易。
非软件例子作为学习模式的助手
在新概念出现时,学生需要例这可以在AGCommnicationSystems 司的模式推
行过程的总结中见同时这也是被其他人总结出来的[12]在学习新东西时学生很
自然地会使用学过的知识来帮助新概念的理解[6]由于这个因,许多子应当在
生第一次触软件设模式时提[12]某些子应该在生学习了
出,等他专家以后。提供例子加需的新内容。这
学生外的子可以避学习素材缺的情况既然模式终要停留人的
头脑[11],因此可以使用大数人熟悉来自于记忆中的训练材料。
结论

在非软件例子中软件设计模式的体现表明了模式不是局限于特定领域软件设计师可以从这些日常事物的模式举例中受益哪怕这些例子并不是以程序设计语言表达这篇文章尽可能举一些大部分人所熟悉的例(尽管某些倾向于北美文化通过对共同的经历的描述这些例子有助于对特定的设计模式的理解并且能够帮设计模式的学习。

感谢

本文作者非常感谢 Dalmatian Gro p Brandon GoldfedderAG Comm nication Systems Linda RisingH mans

and Technology Alistair Cockb rn 和伊利诺思大学 Ralph Johnson 对本文提出的有益

建议。

<span

分享到:
评论

相关推荐

    软件设计模式的非软件例子归纳.pdf

    这些例子说明,软件设计模式不仅限于软件领域,它们可以从现实世界中找到对应的现象和应用。通过理解这些模式,开发者可以更好地运用到软件开发中,提高代码的灵活性和复用性。在实践中,这些模式可以帮助开发者避免...

    软件设计模式的基本例子和笔记总结

    这里我们将深入探讨基于Java的软件设计模式,通过基本例子和笔记总结来理解它们的核心概念。 1. 工厂模式:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露实例化过程。在Java中,我们...

    软件设计模式实验报告.pdf

    【软件设计模式】是软件开发中的重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式是为了解决在软件设计中遇到的一般问题而提出的解决方案,它并不直接解决编程中的具体...

    软件设计模式与体系结构练习题

    在软件开发领域,设计模式和体系结构是至关重要的概念,它们是构建可扩展、可维护且高效软件系统的基础。设计模式是一种在特定情况下解决常见问题的标准化解决方案,而体系结构则是软件系统的整体构造和组织方式。这...

    MVC设计模式例子程序

    MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此来实现业务逻辑、用户...

    软件设计模式与体系结构(讲解+代码)

    上篇:软件设计模式例子代码  【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  ...

    用生动的例子讲述设计模式

    根据提供的信息,我们可以看出这是一本关于设计模式的书籍,旨在通过生动的例子来解释各种设计模式的概念、用途及实现方式。接下来,我们将详细介绍书中部分章节的设计模式知识点。 ### 第1章:策略模式(Strategy ...

    吉林大学软件设计模式课件以及作业答案.zip

    《软件设计模式——深入解析与应用》 软件设计模式,是软件工程中的一种最佳实践,是针对特定问题的解决策略,被广泛应用于软件开发中,以提高代码的可读性、可维护性和可复用性。吉林大学的这门课程通过实例代码、...

    刘伟设计模式和例子

    总结来说,"刘伟设计模式和例子"是一份宝贵的资源,涵盖了软件设计的核心——设计模式。通过深入学习和理解这些模式,并结合具体的示例,开发者能够提升自己的编程技能,更好地应对各种软件设计问题。无论你是初学者...

    设计模式可复用面向对象软件的基础 源码

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。"设计模式可复用面向对象软件的基础"这一主题强调了设计模式在创建可维护、可扩展的面向对象软件中的核心作用。源码实现则为我们...

    设计模式例子是可复用面向对象软件的基础

    在软件开发中,设计模式分为三大类:创建型、结构型和行为型。创建型模式主要关注对象的创建,结构型模式关注如何组合和构建类与对象,而行为型模式则关注对象之间的交互和职责分配。 1. 创建型模式: - 抽象工厂...

    吉林大学软件设计模式SDP02-06例子代码

    设计模式通常分为三类:创建型、结构型和行为型模式。 1. **创建型模式**:这类模式主要关注对象的创建过程,使代码能够灵活地创建对象而无需知道具体类的细节。常见的创建型模式有单例模式、工厂方法模式、抽象...

    软件体系结构与设计模式期末复习.docx

    ### 软件体系结构与设计模式复习指南 #### 一、软件体系结构概述 **软件体系结构**是指具有一定形式的结构化元素的集合,主要包括处理构件、数据构件和连接构件。这些元素构成了软件的基本框架。 1. **处理构件**...

    软件设计模式之创建模式例子

    创建型设计模式是软件设计模式中的重要类别,主要关注对象的创建方式,旨在将对象的创建过程抽象化,使得系统在不指定具体类的情况下能够创建符合特定接口的对象。这一类模式通常包括工厂方法模式、抽象工厂模式、...

    Java设计模式-代理模式例子

    Java设计模式是软件开发中的一种重要思想,它总结了在解决特定问题时代码组织和复用的优秀实践。代理模式是这些模式中的一种,它的主要作用是在不改变原有对象行为的前提下,为对象添加额外的功能或者控制访问。在这...

    设计模式的原型模式的例子

    原型模式(Prototype Pattern)是软件设计模式中的一种结构型模式,它的主要目的是通过复制已有对象来创建新对象,从而减少创建新对象的成本。在原型模式中,类的实例化过程被替换为对已有实例的克隆操作,尤其适用...

    设计模式实例源码

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中遇到的常见问题。这个压缩包文件名为“23种设计模式示例源码”,暗示其中包含了解决23种经典设计模式的具体实现代码,这对于初学者或者希望深入理解...

    软件设计模式与软件标准体系结构实验报告.doc

    软件设计模式与软件标准体系结构实验报告 本实验报告旨在介绍软件设计模式和软件标准体系结构的概念,并通过实践实验对软件设计模式和软件标准体系结构的应用进行了探索和研究。实验报告涵盖了软件设计模式和软件...

    吉林大学软件设计模式SDP02-05例子代码

    吉林大学的“软件设计模式SDP02-05例子代码”提供了对几种核心设计模式的实际应用示例,这有助于学习者深入理解这些模式的用法和目的。 设计模式分为三大类:创建型、结构型和行为型。在这个资料中,我们可能找到...

    吉林大学软件设计模式SDP03-03例子代码

    吉林大学软件设计模式SDP03-03例子代码

Global site tag (gtag.js) - Google Analytics