六安沧州西安三亚宝鸡菏泽
投稿投诉
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

软件设计模式之我见

  孟令帅李晋
  摘要:软件设计模式就是Uml统一建模语言的技巧性概念,其主要研究各个类模块和接口之间的安排与搭配,也是为程序员提供交流的一个很好的平台。利用软件设计模式可以做出质量更高,代码更少,扩充更容易的软件。它更像是一个工具箱,可以生产出更漂亮、更简洁的代码。
  关键字:软件设计;设计模式;建模语言
  中图分类号:TB472文献标识码:A
  软件设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。软件设计模式主要分为创建型模式、结构型模式、行为型模式三种,其中创建型模式用来处理对象的创建过程,结构型模式用来处理类或对象的组合,行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。
  1、设备软件系统的特点
  为增加新的处理新工艺变化而需要的功能,我们会修改设备软件的主程序或部分组件源代码,这样不仅修改代码量比较大,延误了软件更新的及时性要求,而且降低了原软件系统的可靠性,为设备的使用留下隐患;对于为修改工艺方法发生的软件系统的改动,则对应的设备软件的主程序修要修改的部分大大增加,甚至更改程序的主框架,使程序不易扩展,造成程序的可移植性大大的降低,不利于系统的升级,增加维护成本,因此,我们引入了设计模式的概念。
  2、设计模式的分类
  2。1创建型模式
  创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:抽象工厂模式(AbstractFactory)、生成器模式(Builder)、工厂方法模式(FactoryMethord)、原型模式(Prototype)、单例模式(Singleton)。AbstractFactory是应对一系列对象的创建的问题,正如前面文章中举的例子,对于创建一个汽车对象来说,AbstractFactory模式更关注一系列的对象的创建,或者说是汽车类型中的各个部分,如:Wheel、Engine、Body等等类型的创建。换句话说关注点在这一系列对象上。Builder是应对一个复杂对象创建的问题,或者说是针对这个复杂对象中的子对象的创建的问题。以汽车的例子来说,我觉得比起AbstractFactory模式,Builder模式相对注重汽车类型(上面所说的复杂对象)本身以及其各个部分(Wheel、Engine、Body等等)类型的创建。Builder模式要求这个复杂的类型(汽车)中的各个子类型的结合部分相对稳定,用例子说明就是对于汽车来说,无论用什么配件组装,个个配件的组装方式都一样,有相对稳定的接口。对于这辆车你用什么牌子的Wheel、什么牌子的Engine可能变化会很大很频繁。
  2。2行为型设计模式
  行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含11种设计模式。允许多个类处理同一个请求,而不必了解彼此的功能。他在类之间提供一个松散的耦合。类之间唯一的联系就是相互之间的传递请求。请求在类之间传递,直到其中一个类处理它为止。当一个对象向多个对象发送相同的信息时,就需要一种策略来确定由哪个对象对所发送的信息进行处理,而这样的处理对象也只能有一个。使用case语句或if语句的方法会给程序的维护带来很大难度,这就需要职责链模式来完成。职责链模式将发送对象和接收对象进行了解耦,以更好的应对变化。职责链模式将接收对象形成一个链,发送对象将信息发送给接收对象链中的一个对象,这时,信息就沿着对象链向下传送,直到有一个对象对信息进行处理。
  2。3结构型模式
  结构型设计模式是从程序的结构上解决模块之间的耦合问题。包括以下七种模式:Adapte适配器模式:Adapter模式通过类的继承或者对象的组合侧重于转换已有的接口,类适配器采用多继承的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用对象组合的方式,更符合松耦合精神。Bridge桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。减少因变化带来的代码的修改量。Composite组合模式:将对象组合成树形结构以表示部分整体的层次结构。Composite模式使得客户对单个对象和组合对象的使用具有一致性。从而解决了解决客户程序与复杂对象容器的解耦,即:通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。Decorator装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。Decorator模式采用对象组合而非继承的手法,实现了在运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的灵活性差和多子类衍生问题。同时它很好地符合面向对象设计原则中优先使用对象组合而非继承和开放封闭原则。Facade外观模式:为子系统中的一组接口提供一个一致的界面,简化接口。Flyweight享元模式:运用共享技术有效地支持大量细粒度的对象。面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作。Proxy代理模式:为其他对象提供一种代理以控制这个对象的访问。解决直接访问某些对象是出现的问题。从代码的角度看Adapter适配器模式和Proxy代理模式有些类似,前者是解决现有对象在新的环境中所遇到的问题,后者是解决直接访问对象时出现的问题,这两种模式从使用角度看都是解决直接访问对象时出现的问题,只是含义不十分相同。
  3、结束语
  通过对设计模式的研究,我们的软件研发人员不仅能设计出满足客户需求并且灵活、易扩展、复用性强的软件系统,同时还能使我们的设计者深入了解面向对象的编程思想,提高本身的视野及实际研发水平。
  参考文献:
  〔1〕张海攀。信息系统软件体系结构设计研究〔N〕。电脑报,2014
  〔2〕丁黎明。构件技术的中间件开发研究〔J〕。企业文化,2014

走路上学电影观后感四篇《走路上学》的观后感一在我们大城市里,我们完全感受不到乡村里小朋友们对上学的渇望和憧憬。有一部《走路上学》的电影让我深有感触,让我带大家进入这感人的世界吧!在……如果美国的一个州想独立那么美国会不会同意呢说到美国大家的第一印象是什么?小编的第一印象就是自由,所以什么都是自由的,那么小编的就想问了,假如美国的一个州想独立的话,美国是不是也会同意呢?毕竟不是说自由吗?其实答案很好理……教程真的能播放视频的视频原型抖音案例今天和大家分享一个视频分享app的demo,包括播放视频、关注、点赞、评论、转发分享等功能。该原型交互效果齐全,使用也简单,只需要填写中继器表格即可。所以推荐给大家使用,喜欢原……电动打蛋器怎么挑选打蛋器的作用很多朋友在选购打蛋器时并没有重视档位的设计,认为哪怕只有一个档位,只要可以打蛋就没问题了。电动打蛋器怎么挑选打蛋器的作用电动打蛋器怎么挑选根据电动打蛋器的功率……绿萝晚上释放氧气吗不会相反会吸收氧气养殖绿萝在晚上的时候不会释放氧气,相反会吸收氧气,释放二氧化碳,所以在卧室养殖傍晚的时候需要将其移到客厅的位置,另外绿萝属于藤蔓植株,若是养殖数量过多,会影响到家里的风水,所以……桑葚含有哪些营养价值每100克aclasstaghrefwiki10082IQiW3gN2。html桑葚a所含营养价值成分:营养成分含量营养成分含量热量(千卡)……蝴蝶花歌词《蝴蝶花》收录于水木年华《一生有你》专辑。编曲:苏沐专辑:一生有你歌手:水木年华发行日期:2001年9月26日语言:国语发行公司:喜洋洋唱片……我做销售的大收获从2007年,我毕业开始做销售,倏忽之间,有十多年了,总结一下,我做销售的5大收获:1;筛选目标客户精准粉丝是筛选出来的,不是到处去加的我在2016年开发过一……那些让人念念不忘的图片萌宠那些让人念念不忘的图片(4)萌宠关键词:动物可爱萌宠图画推荐:来源:有意思吧收藏看过那么多的萌物,再让我们看看这些萌宠吧。总有一个合你胃口。1、喵了个咪的……过河拆桥的人到底长得啥样过河拆桥,是比较极端的自私自利行为之一。这种人不仅特别冷漠无情,特别忘恩负义之外;更会贪婪花心,为达到目的而不择手段。身边有这种人作为朋友、同事、就像一颗定时炸弹,随时随地都是……富贵竹长蜘蛛网怎么办富贵竹长蜘蛛网,可以用湿纸巾擦拭叶片表面,情况严重,可以喷洒氧化乐果溶液进行防治。在养护富贵竹时,需要做好充足的水分补充,保证土壤处于湿润状态。给富贵竹提供充足的光照,夏季要做……粉底液色号怎么选择粉底液保质期在哪看pf粉底液是目前很流行的一款产品,很多美妆博主都在安利,性价比超高,如果你对这款粉底液也很感兴趣,但是不知道色号怎么选的话,可以看看本站提供的pf粉底液色号怎么选择。当然,小编……
健康换季如何提高宝宝免疫力秋天的气氛越来越浓,白天黑夜的温差越拉越大。在换季的时候,要特别关注宝宝的免疫力。提高学龄前儿童免疫力是预防疾病的首要条件。下面就来一起看看如何提高宝宝免疫力吧。提高宝宝……柯在名字中的寓意带柯字的好听的名字很多父母都有一个给宝宝取一个好名字的愿望,一个好的名字对于宝宝来说是非常重要的,不仅要很好听,还要有一个很好的寓意,毕竟名字是会伴随宝宝的一生的,因此如果有一个很好的寓意的话,……钉头锤为什么被称为中世纪时期最优秀的武器不得不承认,钉头锤的确是中世纪鼎盛时期最为优秀的武器之一,在钝击武器里则可算是数一数二的存在。钉头锤作为一种有效的钝击武器,其作用主要就是为了敲碎而存在的。敲碎是个什么概……居家学习巧妙应对亲子关系紧张最近听到很多班主任表示,延期开学,孩子们线上学习似乎已经走到了瓶颈期,新鲜感过后他们逐渐放松了对自己的要求,而他们的父母们苦于没有精力去对孩子实施无缝监管,接连出现亲子关系紧张……导演抗议冰雪奇缘对韩国电影荧幕的垄断韩国众多导演召开紧急发布会,集体抗议电影《冰雪奇缘2》对韩国电影荧幕的垄断,这也引发了巨大的争议。11月22日,据韩国媒体方面的消息表示22日上午,郑志英导演等韩国电影人……曹丕为何要处死甄姬曹丕杀甄姬后悔了吗曹丕26岁时曾经在宴饮上让甄氏出来待客,刘桢因为正视甄氏而被曹操差点处死。曹丕27岁时纳郭氏。从此史书上再也没有出现过关于甄氏的记载,直到她被赐死。曹丕26岁时让甄氏出来待客,……孕囊大小与孕周关系孕周胎儿大小的具体变化孕囊大小与孕周关系孕囊只在怀孕早期见到,一般月经28~30天规则来潮的妇女,停经35天,B超就可以在宫腔内看到孕囊。孕囊位置在子宫的宫底、前壁、后壁、上部、中部都属正常,……甄姓起源和来历源自皋陶氏二子仲甄以祖先名为姓甄姓主要有两大起源,一是源自帝舜时期的陶人,甄姓的鼻祖就是皋陶的二儿子仲甄,他在帝舜在位时还是制作陶瓦器皿的陶人,而甄在当时就有着做瓦器的人的意思,而他的子孙也就以祖先名为姓了……关于奶粉有哪些常见的误区操作方法01:hr奶粉越贵越好很多人都认为奶粉越贵越好,其实道理是这样的,但是实际上呢?不是的,奶粉说实话,只要在中等的价格里面,都是挺好的。02:hr奶粉进……怎么让老公更满意每日早上,我都是把丈夫,喂得很饱的,随后,使他出来工作中。但是,为什么他仍然对我不会令人满意呢?男生它是吃饱了撑的了没有?他的要求,我每一次都同意,这还不够吗?有女性那样埋怨。……怎么搞定天蝎座男你aclasstaghrefwiki10019IHNBOBV111。html知道a怎么搞定天蝎座男吗?一起来看看吧操作方法01:hr想要搞定天蝎座男生,首先你应该了……杨树黑星病的防治措施杨树黑星病主要危害合作杨、小叶杨、密叶杨、苦杨、柔毛杨、念珠杨、额尔齐斯杨等。幼苗受害较重,嫩枝叶变黑枯死,常造成全床苗木死光。下面介绍一下杨树黑星病的防治措施。【症状】……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网