`

对面向对象设计原则的总结

 
阅读更多
正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(Open-ClosedPrinciple)是面向对象的可复用设计(Object OrientedDesign或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段和工具。

一、“开-闭”原则(Open-ClosedPrinciple,OCP)  

一个软件实体应当对扩展开放,对修改关闭。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。

二、里氏代换原则(Liskov Substitution Principle,LSP)
一个软件实体如果使用的是一个基类的话,那么一定适用于其子类。而且它觉察不出基类对象和子类对象的区别。

三、依赖倒转原则(dependenceinversion principle, DIP)  

依赖倒转原则就是要依赖于抽象,不要依赖于实现。要针对接口编程,不要针对实现编程。也就是说应当使用接口和抽象类进行变量类型声明、参数类型声明、方法返还类型说明,以及数据类型的转换等。而不要用具体类进行变量的类型声明、参数类型声明、方法返还类型说明,以及数据类型的转换等。要保证做到这一点,一个具体类应当只实现接口和抽象类中声明过的方法,而不要给出多余的方法。传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块,抽象层次依赖于具体层次。倒转原则就是把这个错误的依赖关系倒转过来。面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化,具体化给出不同的实现。继承关系就是一种从抽象化到具体化的导出。抽象层包含的应该是应用系统的商务逻辑和宏观的、对整个系统来说重要的战略性决定,是必然性的体现。具体层次含有的是一些次要的与实现有关的算法和逻辑,以及战术性的决定,带有相当大的偶然性选择。具体层次的代码是经常变动的,不能避免出现错误。从复用的角度来说,高层次的模块是应当复用的,而且是复用的重点,因为它含有一个应用系统最重要的宏观商务逻辑,是较为稳定的。而在传统的过程性设计中,复用则侧重于具体层次模块的复用。依赖倒转原则则是对传统的过程性设计方法的“倒转”,是高层次模块复用及其可维护性的有效规范。

四、合成/聚合复用原则(Composite/AggregateReusePrinciple或CARP)  

4.1概念定义:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用这些对象的目的。应首先使用合成/聚合,合成/聚合则使系统灵活,其次才考虑继承,如果两个类是“Has-a”关系应使用合成、聚合,如果是“Is-a”关系可使用继承

五、 迪米特法则(Lawof Demeter,LoD)[b][/b]

一个软件实体应当尽可能少的与其他实体发生相互作用。   这样,当一个模块修改时,就会尽量少的影响其他的模块。扩展会相对容易。   这是对软件实体之间通信的限制。它要求限制软件实体之间通信的宽度和深度。只与你直接的朋友们通信。2)不要跟“陌生人”说话。3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
分享到:
评论

相关推荐

    Java_面向对象设计原则总结

    Java_面向对象设计原则总结 一 类的设计原则 1 依赖倒置原则-Dependency Inversion Principle (DIP) 2 里氏替换原则-Liskov Substitution Principle (LSP) 3 接口分隔原则-Interface Segregation Principle...

    面向对象的设计原则详解

    我们在进行面向对象设计(OOD)时应该怎样进行,遵循什么原则呢?我们或许听说过设计模式,那是针对特定的问题提出的特定的解决方法。面向对象的设计从提出到现在经过很多人的经验和实践,也总结出了很多原则。

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则 C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) C#面向对象设计...

    面向对象设计原则_达内培训

    面向对象设计原则_达内培训 这是我们精心总结的 同大家分享

    软件工程——面向对象六大设计要素

    软件工程 面向对象技术 设计要素总结 六大设计原则

    38丨 总结回顾面向对象、设计原则、编程规范、重构技巧等知识点1

    1. 面向对象概述 2. 面向对象四大特性 3. 面向对象 VS 面向过程 4. 面向对象分析、设计与编程 5. 接口 VS 抽象类 6. 基于接口而非实现编程

    面向对象与UML资料

    面向对象设计的概念 21 面向对象的设计方法 21 第三章 UML概述 22 UML对软件工程的重大影响 22 UML的概念模型 22 UML的建模思想 23 第四章 用UML建模 24 第一节 建模概念 24 系统、模型和视图 24 概念和现象 25 数据...

    设计模式总结

    -- 一,六大设计原则 一,六大设计原则 单一职责原则(Single Responsibility Principle,简称SRP) 有且仅有一个原因引起类的变更。 里氏替换原则(Liskov Substitution Principle,LSP) 只要父类出现的地方都...

    GOF的23种设计模式,及设计模式的六大原则

    GOF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者,他们分为是:Elich Gamma、Richard Helm、Ralph ...

    PHP 面向对象技术(全面讲解).txt

    面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程 架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP 达到了软件工程的三个目标:...

    设计模式总结与分析

    Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,现将所有文章的进行了整理,方便大家下载阅读...

    DesignPattern:Java设计模式学习

      面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则。面向对象设计原则也是我们用于评价一个设计模式的使用效果的重要指标之一,在设计模式的...

    OOD启思录 高清pdf

     全书共11章,总结出了60多条面向对象设计(OOD)的指导原则。这些经验原则涵盖了从类到对象(主要强调它们之间的关系,包括关联、使用、包含、单继承、多继承)到面向对象物理设计的重要主题。本书将帮助你理解经验...

    设计模式解析-英文

     第1章 面向对象范型 2 第2章 UML 21 第二部分 传统面向对象设计的局限 第3章 对代码灵活性要求很高的问题 33 第4章 标准的面向对象解决方案 41 第三部分 设计模式 第5章 设计模式简介 53 第6章 Facade模式 65 第7...

    包的设计原则

    重用发布等价原则前言RobertC.Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为“PrinciplesofOOD”,关于“PrinciplesofOOD”的相关文章可以从ObjectMenter得到。本文介绍...

Global site tag (gtag.js) - Google Analytics