3-面向对象设计原则.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
洲研究庫资助 贰安仝大软件卡 洲研究庫资助 贰安仝大软件卡BL 面向对象设计原则 原盛 原盛 目标 ? 了解软件复用的重要性 ?『解而向对象实现软件复用的儿穴设计原则 内容 ?软件的可维护性与可复用性 ? “开■一闭”原则(OCP) ?里氏代换原则(LSP) ?依赖倒转原则(DIP) ?接口隔离原则(ISP) ?合成/聚合复川原则(CARP) 洲研寬風资助?辿米特法则(LoD) 洲研寬風资助 软件系统的可维护性 软件系统的可维护性 洲研寬嵐资助 贰安交大就件爭竄 洲研寬嵐资助 贰安交大就件爭竄 软件系统的可维护性 软件系统的可维护性 洲研寬嵐资助 贰安交大就件爭竄 洲研寬嵐资助 贰安交大就件爭竄 软件系统的设计目标 软件系统的设计目标 ?软件维护的费用二软件开发的费用X2 ?软件的维护二软件的再生 ?导致软件可维护性底的原因: ■过于僵硬(Rigidity) ■过于脆弱(Fragility) ■复用率低(Immobility) -黏度过高(Viscosity) ?可扩展性(Extensibility) -新的性能可以很容易地加入到系统中 -&“过于僵哽"的反面 ?灵活性(Flexibility) -可以允许代码修改Y和地发X而不会涉及別很多其他的模块 -it “过于脆沏”的反而 ?可插入性(Pluggability) -呵以很容易的将一个类抽出去,同时将呂-个有同样接LJ的类加 入进来 -是“黏度过髙”的反面 克敦亚洲研丸凤 克敦亚洲研丸凤《E助 汽欢交大就件予鶴 克敦亚洲研丸凤 克敦亚洲研丸凤《E助 汽欢交大就件予鶴 系统的可复用性 ?复用(Reuse) -眞复便用 ?软件父用的妤处 -较高的生产效率 ?巫复便川的软件成分可以为将來的使用节省费川 -较高的软件质量 -nJU用的软件成分总是比不能复用的软件成分冇更笔的质吊保 证 -恰艸使用以用町以改善系统的町维护性 件爭険 传统的复用 ?代码的剪贴复用 ?算法的毘用 -如经典的推序算法等 ?数据结构的复用 -如队、栈等 ?传统的复用方案不能地强可维护性 -模块AUIB同时使用模块C ?A需婆模块C增加一个功能 ?B不能允iYC增加这样-个功能 面向对象设计的复用 面向对象设计的复用 洲研寬凤资助 西安交大 洲研寬凤资助 西安交大tt件予竄 面向对象设计的复用 面向对象设计的复用 洲研寬凤资助 西安交大 洲研寬凤资助 西安交大tt件予竄 开?闭原则?定义: 开?闭原则 ?定义: ?数据的抽彖化和继承关系 -使得概念和定义可以复用 ?多态性 -使得实现和应用可以复用 ?抽象化和封装 -可以保持和促进系统的可维护性 ?面向对象设计的复用堇点的转移 -不再集中在函数和算法等具体实现细节上 -而足集中在放重要的倉仃龙观商业逻供的抽汝肚次上 - ?个软件实体应当对扩展开放,对修改关闭 -Software entities should be open for extension,but closed for modification. ?实现该原则的关键技术; -抽彖化 ?从抽象层导出一个或多个新的具体类可以改变系统的行为.W 此系统的设计对扩展圧开放的 ?抽線层預见了所有的可能扩展,因此.在任何扩展情况F都不 公改变.这就肚刚改变的关闭 洲研寬凤资助 西安交大氏件爭竄 洲研寬凤资助 西安交大氏件爭竄 洲研寬凤资助 西安交大氏件爭竄 洲研寬凤资助 西安交大氏件爭竄 洲研寬凤丧助 西安交大件字竄 洲研寬凤丧助 西安交大件字竄 一灯洲研助类图描述 一灯 洲研助 类图描述 ?用而向对象的方式模拟我们回家之后开灯、离开家 Z后关灯的过程 ?对象 一家 进入操作 离开操作 打开操作 关闭操作 public void EnterO< ■Light.open(); public void EnterO< ■Light.open(); ) public void LeaveQ{ ■Light.closeO: } public Light light( get{ return aLlghc;} set{ BLight-value;} public void Oper)O{ Systea.c&nsole.Writel1ne(Hlight tumning on… } public void closeOf Systea.Cansole.WriteL1ne(MT1ght turnning off...M): } public static void MainO{Roon room=new Roon(); public static void MainO{ Light light=new LightO; room.liglit=light; room.entryO; System .Console ?wri

文档评论(0)

cooldemon0602 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档