




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!1引言从上世纪60年代末开始,由于计算机软件对生产力有巨大的推动作用,各可维护性明显降低,软件行业出现了危机。直到80年代,软件开发采用面向对弱,往往修改一处代码会带来无法预测的后果;系统复用率低,黏度过高等等。为了避免上述缺陷,设计出具备良好的可扩展性、可复用性、易维护性的系统,我们应在系统设计和实践阶段采用设计模式的思想。设计模式是软件复用技术中的一个重要概念[1]对象的软件设计经验记录下来,并予以系统的命名、解释和评价,使不同的开发人员在进行不同系统的设计与开发时,可以使用别人的成功经验而不必为普通的、重复的问题重新设计解决方案,使设计者更容易理解其设计思路,能为自己设计模式的种类日益增多,相对于GoF在1994年提出的23种通用设计模式,来进行探讨。[2]2从设计原则到设计模式2.1设计原则对象有几个原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成/聚合复用原则、最小知识原则、单一职责原则和抽象原则。开闭原则具有理性的目的。(1)开闭原则在不修改原来代码的情况下进行扩展。这样在扩展的同时对旧版本有很好的支持,使得系统更加灵活,具有很强的适应性。(2)里氏代换原则现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽任意修改,就会对整个继承体系造成破坏。代码复用的重要基础。(3)合成复用原则合成是值的聚合,聚合是引用的聚合。合成和聚合都是关联的特殊种类,聚合表示整体和部分的关系,表示“拥有”;合成则是一种更强的“拥有”,部分开发中应尽量使用合成/聚合,而不是使用继承。(4)依赖倒转原则编程;传递参数,或者在组合聚合关系中,尽量引用层次高的类。高层模块不应操作,把展现细节的任务交给他们的实现类去完成。(5)接口隔离原则小的接口上。建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中赖一个综合的接口更灵活。接口是设计时对外部设定的“契约”,通过分散定义不能交给一个接口。(6)抽象原则用抽象构建框架,用实现扩展细节。因为抽象灵活性好,适应性广,只要抽类的共同属性和方法。具体类是不被其他类所继承的,即子类继承了抽象类后,这个子类不应再被其他类所继承。(7)迪米特法则心做自己的事情而不去关心其他的事情,以降低耦合度。(8)单一职责原则面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。2.2设计模式设计模式是一些富有经验的面向对象技术专家针对特定问题而设计的成功是设计模式。[1]代码编制真正工程化,如同大厦的结构一样,设计模式是软件工程的基石脉络。一般而言,一个模式有四个基本要素:模式名称、问题(描述应该在何时使用模式)、解决方案(描述设计的组成成分、它们之间的相互关系及各自的职责和协作方式)、效果(描述模式应用的效果及使用模式应权衡的问题)。2.3设计思想种可重用的解决方案,在软件工程中一个设计模式往往能解决一类软件设计问和体系结构,采用设计模式的软件系统具有更好的可维护性。软件在不断进化,需求在不断改变,所以软件应该适应变化。设计模式是[3]让变化的影响最小;封装复杂性,提供简单的接口;针对接口编程,而不是针对实现编程;最大程度地继承、组合、委托、多态和参数化。职责之间相关程度和集中程度的度量[4]相关的职责不要分派给同一个类。UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了高内聚,低耦合的思想。可复用面向对象软件系统现在一般划分为两大类:应用程序工具箱和框架,我们平时开发的具体软件都是应用程序,Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类,EJB是Java应用于企业计算中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式。,熟悉这些设计模式可帮助我们掌握EJB、J2EE等框架的结构。3GRASP职责分配模式与设计模式的应用价值GRASP作为设计模式来描述对象设计和职责分配的基本原则。GRASP原Adapters所需的Adapter,我们应用工厂模式,设计一个,按系统当前的要求实例化相应的;为了系统中同一类的Adapters实例具有唯一的创建逻辑,我们应用单实例类模式,使Factory在系统中仅有唯一的一个实例。的维护量。4小结方向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国有土地使用权合法信托项目融资合同3篇
- 2025年度人事档案鉴定与评估委托合同4篇
- 管桩运输合同纠纷案例分析
- 电力工程居间介绍合同范本
- 家庭护理助手招聘居间合同
- 国际展览馆租赁合同细则
- 长期档案寄存合同模板
- 2025年养老院餐饮服务合同
- 货车租赁合同模板与细则
- 音乐版权合作开发合同样本
- 供应室课件大全
- 浙江省大学生职业生涯规划大赛赛前辅导课件
- 部编四下语文《口语交际:转述》公开课教案教学设计【一等奖】
- 仓库每日巡查制度
- 学校教育数字化工作先进个人事迹材料
- 动物防疫服务投标方案(技术方案)
- 2024年新课标全国Ⅰ卷语文高考真题试卷(含答案)
- 2024中国AI应用开发者生态调研报告-易观分析
- -中国传统节日之春节习俗介绍主题班会14
- 2024鲁教版七年级下册数学第七章综合检测试卷及答案
- 2024年辽宁医药职业学院单招职业适应性测试题库含答案
评论
0/150
提交评论