- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013-12-11-面向对象课件-第八讲-对象设计
* * * * * * * * * * 里氏代换原则 里氏代换原则实例 实例说明 如果需要更换一个加密算法类或者增加并使用一个新的加密算法类,如将CipherA改为CipherB,则需要修改客户类Client和数据操作类DataOperator的源代码,违背了开闭原则。 现使用里氏代换原则对其进行重构,使得系统可以灵活扩展,符合开闭原则。 里氏代换原则 里氏代换原则实例 实例解析 依赖倒转原则 依赖倒转原则定义 依赖倒转原则(Dependence Inversion Principle, DIP)的定义如下: 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 其英文定义为: High level modules should not depend upon low level modules, both should depend upon abstractions. Abstractions should not depend upon details, details should depend upon abstractions. 另一种表述为: 要针对接口编程,不要针对实现编程。 其英文定义为: Program to an interface, not an implementation. 依赖倒转原则 依赖倒转原则分析 依赖倒转原则是Robert C. Martin在1996年为《C++ Reporter》所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的经典著作《Agile Software Development, Principles, Patterns, and Practices》中。 依赖倒转原则 依赖倒转原则分析 简单来说,依赖倒转原则就是指:代码要依赖于抽象的类,而不要依赖于具体的类;要针对接口或抽象类编程,而不是针对具体类编程。 实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。 依赖倒转原则 依赖倒转原则分析 依赖倒转原则的常用实现方式之一是在代码中使用抽象类,而将具体类放在配置文件中。 “将抽象放进代码,将细节放进元数据” Put Abstractions in Code, Details in Metadata (《程序员修炼之道:从小工到专家》(The Pragmatic programmer: from journeyman to master) ) 依赖倒转原则 依赖倒转原则分析 类之间的耦合 零耦合关系 具体耦合关系 抽象耦合关系 依赖倒转原则要求客户端依赖于抽象耦合,以抽象方式耦合是依赖倒转原则的关键。 依赖倒转原则 依赖倒转原则分析 依赖注入 依赖倒转原则 依赖倒转原则分析 依赖注入 构造注入(Constructor Injection):通过构造函数注入实例变量。 设值注入(Setter Injection):通过Setter方法注入实例变量。 接口注入(Interface Injection):通过接口方法注入实例变量。 依赖倒转原则 依赖倒转原则实例 实例说明 某系统提供一个数据转换模块,可以将来自不同数据源的数据转换成多种格式,如可以转换来自数据库的数据(DatabaseSource)、也可以转换来自文本文件的数据(TextSource),转换后的格式可以是XML文件(XMLTransformer)、也可以是XLS文件(XLSTransformer)等。 依赖倒转原则 依赖倒转原则实例 实例说明 由于需求的变化,该系统可能需要增加新的数据源或者新的文件格式,每增加一个新的类型的数据源或者新的类型的文件格式,客户类MainClass都需要修改源代码,以便使用新的类,但违背了开闭原则。现使用依赖倒转原则对其进行重构。 依赖倒转原则 依赖倒转原则实例 实例解析 接口隔离原则 接口隔离原则定义 接口隔离原则(Interface Segregation Principle, ISP)的定义如下: 客户端不应该依赖那些它不需要的接口。 其英文定义为: Clients should not be forced to depend upon interfaces that they do not use. 注意,在该定义中的接口指的是所定义的方法。 另一种定义方法如下: 一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。 其英文定义为: Once an interface has gotten too f
您可能关注的文档
- 2012届湖南人教版学海导航新课标高中总复习(第1轮)物理:第9章_第1讲_电磁感应现象_楞次定律.ppt
- 2012年上海楼市年度快报(简报).doc
- 2012年东林知识更新-林业初级作业(共需+专业).doc
- 2012年2月中考一轮复习化学精品课件沪教版(含2011中考真题)能力提升部分(98张ppt).ppt
- 2012年事业单位考试 《行政职业能力测验》模拟试卷二十五.doc
- 2012年下半年网络工程师上午、下午试题及答案详解.doc
- 2012年中考专项复习:说明文阅读.ppt
- 2012年信息领域评审与资助_20121208.ppt
- 2012专利信息检索2h.ppt
- 2012年全国中考数学试题分类解析汇编(159套63专题)专题32:图形的镶嵌与图形的设计.doc
文档评论(0)