`

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

 
阅读更多
正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(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...

    面向对象设计原则

    根据提供的标题“面向对象设计原则”以及描述与部分混乱的内容,我们可以提炼出关于面向对象设计原则的一些关键知识点。面向对象设计原则是软件工程中的一个重要组成部分,它指导开发人员如何更有效地设计面向对象的...

    java面向对象设计的六大原则

    这六个面向对象设计原则为开发人员提供了一套指导思想,帮助他们在设计和重构系统时做出更明智的选择。遵循这些原则不仅可以提高代码的质量,还能增强系统的可扩展性和可维护性。虽然这些原则看起来简单,但在实际...

    面向对象设计原则与设计模式

    面向对象设计原则与设计模式是软件工程中至关重要的概念,它们是构建可维护、可扩展、高复用性代码的基础。下面将详细阐述这些原则和模式,并结合PPT文件名称"设计原则.ppt"来推测可能包含的内容。 一、面向对象...

    Java设计模式02面向对象设计原则

    ### 面向对象设计原则概览 面向对象设计原则是指导软件工程师在设计阶段遵循的一系列准则,旨在提高软件的可维护性、可复用性和可扩展性。这些原则由多位软件设计大师总结提炼而成,如Robert C. Martin和Peter Coad...

    23种 设计模式---面向对象的基本原则

    在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计模式以及面向对象的基本原则。 面向对象的基本原则主要包括: 1. 单一职责原则(Single Responsibility ...

    面向对象系统分析与设计.pdf

    6. 面向对象设计原则:包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则等。这些原则帮助设计出更加灵活、可维护的系统。 7. 设计模式:设计模式是解决问题的通用模板,它们总结了面向对象...

    面向对象设计原则与设计说明

    面向对象设计原则是软件工程领域中的一套指导思想,旨在帮助开发者设计出更易于维护、扩展和理解的软件系统。这些原则是经过多年实践总结出来的,它们不仅有助于提高代码的质量,还能促进团队之间的协作效率。接下来...

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

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

    java 门禁系统的面向对象设计

    总结来说,Java门禁系统的面向对象设计涉及到用户、验证、授权、记录、报警等多个方面,通过合理的对象划分和接口设计,可以构建出稳定、灵活的系统架构。在实际开发中,还需结合具体的业务需求和技术选型,进行适当...

    面向对象分析与设计课程设计(餐厅点菜系统).pdf

    面向对象分析与设计(OOA&D)课程设计在实际应用中通常是针对具体项目来进行的,例如本案例中...通过利用UML的图形表示法和遵循面向对象设计原则,可以提高软件设计的效率和有效性,为后续的开发和维护工作打下坚实基础。

    《C#面向对象设计模式纵横谈》.pdf

    《设计模式:可复用面向对象软件的基础》一书中,四位作者(被称为Gang of Four,即GoF)总结了23种经典的面向对象设计模式。这些模式被广泛地应用于软件开发中,成为了设计模式领域的经典之作。这些模式按照目的和...

    设计模式可复用面向对象软件的基础(C++)——强烈推荐

    总结来说,这本书是面向C++程序员的一份宝贵资源,它深入探讨了设计模式的理论与实践,通过具体的案例分析,帮助读者掌握面向对象设计的核心原则。无论是初学者还是经验丰富的开发者,都可以从中受益,提升自己的...

    面向对象设计的基本原则和实践建议

    在面向对象设计中,我们遵循一些核心的原则,这些原则有助于创建可维护、可扩展、易于理解和复用的软件系统。以下是对这些基本原则和实践建议的详细阐述: 1. **单一职责原则(Single Responsibility Principle, ...

    面向对象分析与设计

    另一方面,"经典java项目源代码.rar"包含了一些实际的Java项目源码,这些源码可以用来学习和理解如何在实际开发中应用面向对象设计原则。通过阅读和分析这些代码,我们可以看到面向对象设计在真实世界中的应用,包括...

Global site tag (gtag.js) - Google Analytics