- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML学习PPT-21 面向对象设计原则
面向对象设计原则 面向对象设计原则 类设计 包设计 面向对象设计原则——类设计 SRP,单一职责原则,一个类应该有且只有一个改变的理由 OCP,开放封闭原则,你应该能够不用修改原有类就能扩展一个类的行为 LSP,Liskov替换原则,派生类要与其基类自相容 DIP,依赖倒置原则,依赖于抽象而不是实现 ISP,接口隔离原则,客户只要关注它们所需的接口 CARP,合成/聚合复用原则,尽量使用合成/聚合、尽量不要使用继承 LoD,迪米特法则,不要和陌生人说话 单一职责原则(Single-Responsibility Principle ) 就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因 所谓职责 可以理解为功能,就是设计的这个类功能应该只有一个,而不是两个或更多 也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑拆分这个类了 单一职责原则(Single-Responsibility Principle ) 例子 interface Modem{??? public void dial(string pno);??? public void hangup();??? public void send(char c);??? public void recv();}? 单一职责原则(Single-Responsibility Principle ) 例子 interface DataChannel{??? public void send(char c);??? public void recv();} interface Connection{??? public void dial(string pno);??? public void hangup();} 单一职责原则(Single-Responsibility Principle ) 就像一个人身兼数职,而这些事情相互关联不大,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对 优点 消除耦合,减小因需求变化引起代码僵化性臭味 单一职责原则(Single-Responsibility Principle ) 注意 一个合理的类,应该仅有一个引起它变化的原因,即单一职责 在没有变化征兆的情况下应用SRP或其他原则是不明智的 在需求实际发生变化时就应该应用SRP等原则来重构代码 开-闭原则(The Open-Closed Principle) 什么是开-闭原则 一个软件实体应当对扩展开放,对修改关闭。 开-闭原则的优越性 通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求 已有的软件模块不能再被修改,这使软件系统有一定的稳定性和延续性 开-闭原则的关键——抽象 实现Open-Closed原则,抽象化是关键。 让模块操作一个抽象的实体。由于模块依赖于一个固定的抽象实体,因此它可以是不允许被修改的;同时,通过从这个抽象体的派生,也可以扩展此模块的行为 对可变性的封装 考虑系统中什么可能会发生变化 一种可变性不应当散落到代码的很多角落里,而应该被封装到一个对象里 开闭原则具有理想主义的色彩,它是面向对象设计的终极目标。 里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)以及抽象类(Abstract Class)、接口(Interace)等等,都可以看作是开闭原则的实现方法。 里氏代换原则 (The Liskov Substitution Principle) 里氏代换原则的严格表达 如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。 里氏代换原则 (The Liskov Substitution Principle) 举例 对于父类和子类Base和Derived,若程序能接受Base,那么程序必然可以接受子类Derived void Method (Base b){…}; … … Derived d; Method (d); 依赖倒转原则(Dependence Inversion Principle) 糟糕的设计 很难添加新的功能,因为每一处改动都会影响系统中过多的模块 当你做了一处改动,却导致系统中的另一个模块发生问题 很难在别的应用程序中重用这个模块 三种耦合关系 零耦合(Nil Coupling) 两个类之间没有耦合关系 具体耦合(Concrete Coupling) 两个具体的类之间,经由一个类对另一个具体类的直接引用造成的耦合关系 抽象耦合(Abstract Coupl
您可能关注的文档
- stata-误差修正模型讲解.doc
- STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲.doc
- STM32考试习题及答案.doc
- STM8教程-第七章 STM8S207 GPIO模块及其应用.docx
- STP技术及其应用.doc
- string.ppt
- Struts2文件上传下载和监听.ppt
- STT智能启停系统.docx
- STZ说明书.doc
- superpave design guide.ppt
- UI设计的外延信息图表设计.ppt
- UML状态图活动图画法和基础.ppt
- UML期末复习建模图示.doc
- UML统一建模语言PPTchapter09.ppt
- UNI 3964-1985-常温环境下疲劳测试.doc
- Unfair cell phone trade.pptx
- unit 1 Computer and Computer Science.ppt
- Unit 10 Satire in Literature新编大学英语第二版第四册课文翻译.doc
- Unit 1 Conference Information.pptx
- Unit 2-1(Main Components of Engine ).pptx
最近下载
- 2018年第73期建设项目竣工环境保护验收监测技术培训班成绩单.PDF VIP
- 山东建筑大学《概率论与数理统计》公共课A试题 2.doc VIP
- 2025年台湾AI行销趋势报告(繁体版)-Kolr.docx VIP
- 湖北办公楼监控及电子围栏系统施工组织设计.doc VIP
- 围栏(施工组织设计围栏(施工组织设计).doc VIP
- 2024年台湾YouTube年度社群内容趋势报告(繁体版)-Kolr.pptx VIP
- 诺尔起重设备(中国)有限公司RTG&RMG中国福建招商局漳州开发区363105.pdf VIP
- 小区沥青道路设计做法.doc VIP
- 2025年台湾AI行销趋势报告(繁体版)-Kolr.pdf VIP
- 防雷安全知识试题及答案.doc VIP
文档评论(0)