软件设计模式的非软件例子

软件设计模式的非软件例子

ID:42135282

大小:535.87 KB

页数:9页

时间:2019-09-08

软件设计模式的非软件例子_第1页
软件设计模式的非软件例子_第2页
软件设计模式的非软件例子_第3页
软件设计模式的非软件例子_第4页
软件设计模式的非软件例子_第5页
资源描述:

《软件设计模式的非软件例子》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、软件设计模式的非软件例子软件设计模式来源于ChristopherAlexander的建筑学模式和对象运动。根据Alexander的观点,模式就是一个对于特定的系统的通用解决方案木身的重复。对象运动关注于将现实世界模化为软件内部的关系。基于这两个原因,软件设计模式对于真实世界的物体而言同样应当是可以重复的。这篇文章呈现了现实的世界屮的非软件的模式实例,这些模式来源于《设计模式一可复用而向对彖软件的基础(DesignPatterns・ElementsofReusableObject-OrientedSoftware)[13]•书。这篇文章也

2、举例讨论了模式语言对非软件的表现力和设计模式的练习。简介在软件行业中,模式支持者的团体正在扩人。模式发展的起源可以在建筑师ChristopherAlexander的著作中找到,他认为模式是北界I】特怎系统的通用解决方案。他描述的模式可以在日常的建筑物中观察到。《模式语言》(APatternLanguage)[2]中的每个模式都包含了一张该模式原始范例的图片。虽然物质是主流世界的观点,而模式为软件世界所信奉,模式也令瓦体现事物发展的根源[9]。不幸的是软件设计模式的例子不象Alexander模式那么丰富因为软件设计农现的是精致的构思而不是

3、那些最初产生的想法[13]。当今人多数软件的专有性限制了我们接触•流设计的机会。根据Alexander的说法,现实世界中模式总是重复自己,因为在一个特定的环境下,它们总是很好地适应现有的环境因素[1]o在软件屮,要么现实世界的问题被完全地模式化,要么现实川:界的物体被转换成为破件和软件,用来产牛:现实吐界的结果[5]。既然软件设计模式根源于Alexander的样式和刈豫,那么在现实世界中找到软件设计模式也是很止常的。这并不是说软件设计模式是现实世界事物的必然模型,而是说在契合的对象之间相互影响的关系可以在“现实世界”和软件对象中同样地观

4、察到。为了验证这个假设,我们将为每一种设计模式找出一个现实世界的例子来。这些例子在下面的笫二节至笫四节列出。创建型模式一一与对象的创建有关作者(指《设计模式》的作者一译注,下同)总结了五种创建型模式。创建型模式的例子可以在制造业,快餐,生物和行政机构屮找到。抽象工厂(AbstractFactory)举例抽象工厂的II的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以在II本汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车年身部件。同样的机械用于冲压不同的年型的右边车门、左边车门、右前扌

5、当泥板、左前描泥板和引擎罩等等。通过使用转轮来改变冲压盘,这个机械产工的具体类可以在三分钟内改变[16]0容户(模块邮件列农)冲压设备冲压部件0图1:抽象工厂的冲压例子工厂方法(FactoryMethod)举例工厂方法定义一个用于创建対彖的接口,但是让子类决定实例化哪个类。压注成型演示了这种模式。劑料玩具制造商加匸犁料粉,将蜩料注入到希望形状的模具中[15]0玩具的类别(车,人物等等)是由模具决定的。(有关抽象工厂与工厂方法我的那篇HeadFirst采访“工厂方法”和“抽象工厂”也有些信息可参考)图2:使用注入成型为例子的工厂方法的对彖

6、图生成器(Builder)举例宀成器模式将复杂对象的构建与对象的农现分离开来,这样使得同样的构建过程町以创建出不同的表现。这种模式用于快餐丿占制作儿童餐。典型的儿童餐包括•个主食,•个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)这些在不同的儿童餐屮可以是不同的,但是组合成儿童餐的过程是相同的。无论顾客点的是汉堡,三名治还是鸡肉,过程都是一•样的。柜台的员T直接把主食,辅食和玩具放在一起。这些是放在一个袋子中的。饮料被倒入杯中,放在袋子外边。这些过程在相互竞争的餐馆中是同样的。械客妆帳员餐馆员工图3:使用儿童餐作为例了的牛成器

7、模式的对彖作用表原型(Prototype)举例原型模式使用原型实例指定创建对象的种类。新产品的原型通常是先于金部产品建立的,这样的原型是被动的,并不参与复制它自己。一个细胞的有丝分裂,产生两个同样的细胞,是一个扮演主动角色复制自己原型的例了,这演示了原型模式。一个细胞分裂,产牛两个同样基因型的细胞。换句话说,细胞克隆了口己。图4:使用细胞分裂例子的原型模式对象图单例(Singleton)举例单例模式确保一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是模仿单集命名的,单集的定义是每个集合仅含有一个元索。美国总统的职位是单例,美

8、国宪法规宦了总统的选举,任期以及继任的顺序。这样,在任何时刻只能由一个现任的总统。无论现任总统的身份为何,其头衔“美利坚美利坚合众国总统”是访问这个职位的人的-个全局的访问点。图5:使用总统例了的单例模式对

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

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

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