`
fishermen
  • 浏览: 377881 次
社区版块
存档分类
最新评论

OO原则总结

阅读更多

      开发设计,不分语言、系统类别,面向对象设计的原则是相通的。

      基础的OO原则无非有三:

  •       封装变化
  •       多组合少继承
  •        针对接口编程

      封装变化:扩展开去,区分系统、子系统、类、方法中易变和不变部分,独立封装,从而从容应对以后的变化,也使系统后续扩展只影响到局部;在系统设计中,把变化与不变的部分独立成类,可以提高类的内聚性,提高系统的应变性,同时也可以类实例的耦合度降低。

      组合:之所以组合由于继承,是因为组合可以轻易使用已有的类,来构建新的属性;组合元素的变化,只要接口不变,对整个系统基本没有影响,而继承,父类的变化直接作用于子类,而且很容易引入副作用,父类中一些冗余的元素也尽在子类中出现。

      接口编程:不仅仅是流行,更是智慧的结晶,接口可以使调用者不关心具体实现,只按照约定行事,避免过于依赖于具体实现而僵硬,而实现者可以透明的更新或优化,给两者一个很好的分界点和协调器;

      其实headfirst系列的设计模式中,也对上述原则列为重中之重,同时她引入更多的设计原则,有些在思路上有重复的,我们不妨认为作者的强调之用。其列出的更多的OO设计原则:

  •       为交互对象间的松耦合而努力;
  •       类应该对扩展开放,对修改关闭
  •       依赖于抽象,不依赖的具体类
  •       只和朋友交谈
  •       别找我,我会找你
  •       类应该只有一个改变的理由。

 

     

分享到:
评论

相关推荐

    OO设计原则总结

    ### OO设计原则总结 #### 什么是设计原则? 设计原则是一系列指导软件开发的基本准则,遵循这些原则可以帮助开发者构建出更加灵活、易于维护和扩展的软件系统。这些原则旨在解决常见的软件设计问题,如耦合度高、...

    OO设计原则总结.doc

    ### OO设计原则精要解析 #### 封装变化:Encapsulate what varies 在软件设计中,变化是不可避免的。...这些原则不仅是理论上的指导,更是实践经验的总结,对于提升软件工程的质量有着不可估量的价值。

    OO设计原则 -- OO设计的 DIP依赖倒置原则

    ### OO设计原则 -- OO设计的 DIP依赖倒置原则 #### 概述 在软件工程领域,特别是面向对象设计中,依赖倒置原则(Dependency Inversion Principle, DIP)是六大设计原则之一,由著名软件架构师Robert C. Martin提出...

    OO设计原则-里氏替换原则

    ### OO设计原则——里氏替换原则详解 #### 一、引言 面向对象设计原则(Object-Oriented Design Principles)是一套指导软件开发者如何更好地设计类、接口等面向对象元素的原则集合,旨在提高代码的可复用性、可...

    OO设计根本的指导原则

    ### OO设计根本的指导原则 面向对象(Object-Oriented,简称OO)设计是软件工程领域内一种重要的设计理念,它通过模拟现实世界中的对象及其相互作用来构建软件系统。为了确保设计的质量,遵循一系列的设计原则至关...

    实战OO 部署与实施

    根据给定的信息,“实战OO部署与实施”这一主题聚焦于面向对象(Object-Oriented,简称OO)系统在实际环境中的部署与实施过程。面向对象技术是软件开发领域的重要组成部分,它强调通过模拟现实世界中的对象及其交互...

    KWIC oo设计java源码

    "KWIC oo设计java源码" 这个标题表明我们要讨论的是一个使用面向对象(OO)设计原则来解决“关键词上下文”(KEY WORD IN CONTEXT,简称KWIC)问题的Java源代码项目。KWIC是一种文本处理技术,常用于信息检索、文本...

    uml建模讲义 OO方法、RUP与UML建模

    本文将深入探讨OO原则、UML表示法以及RUP建模过程。 一、OOAD与UML表示法 面向对象的原则包括抽象(Abstraction)、封装(Encapsulation)、模块化(Modularity)和分层(Hierarchy)。这些原则旨在创建灵活、可...

    java设计模式之面向对象的思想(think in OO(Object Oriented))

    在实际项目中,结合面向对象的设计原则(如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等),我们可以构建出高效、高质量的软件系统。学习并熟练掌握这些设计模式,对于提升Java程序员的专业素养至关重要。

    OO方法、RUP与UML建模

    面向对象(Object-Oriented, OO)方法是一种软件开发技术,它基于对象的概念,通过抽象、封装、模块化和分层等原则来构建软件系统。抽象是将复杂现实世界的实体简化为基本元素的过程;封装是将数据和操作这些数据的...

    面向对象的设计原则 doc

    为了达到这一目的,面向对象编程领域总结出了若干设计原则,帮助开发者构建更加健壮、灵活且易于扩展的系统。本文将详细探讨面向对象设计中的六大基本原则,并结合部分文本内容进行深入分析。 #### 一、开闭原则...

    面向对象的设计原则--ooprinciples

    #### 四、总结 开放关闭原则是面向对象设计中极为重要的一个原则,它不仅有助于构建灵活、可扩展的软件系统,还能够有效降低系统的维护成本。通过遵循此原则,开发者可以在不影响现有系统的情况下轻松地添加新功能或...

    Java Design Objects UML Process

    1.4章节的结论部分总结了前面章节的内容,强调了OO原则、模式在实际开发中的价值,以及它们如何与UML相结合,为系统设计提供强大的工具。 接下来,2.0章节引入了UML,一种可视化编程语言。UML不仅是一种描述系统...

    本人3年内面试总结java

    4. **OO设计原则**:面向对象的设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则和迪米特法则,这些都是软件设计中重要的指导思想,面试中可能会考察对这些原则的理解和应用能力。...

    学习OO设计概念和Java中的MDI应用程序开发的项目_Java_下载.zip

    在这个项目“学习OO设计概念和Java中的MDI应用程序开发”中,我们将深入探讨面向对象(Object-Oriented, OO)设计的基本原则以及如何在Java环境中实现多文档界面(Multiple Document Interface, MDI)应用程序。...

    Reverse Engineering of OO Code Monographs in CS

    对于面向对象(Object-Oriented,简称OO)的代码来说,逆向工程可以帮助开发者更好地理解和重构现有系统,这对于维护大型软件项目、保护知识产权以及提高软件质量等方面都有着不可替代的作用。 #### 二、面向对象...

    函数式编程中的设计模式.pdf

    在函数式编程中,设计模式有所不同,它们通常基于一组与命令式编程(如面向对象编程,即OO)不同的原则。 首先,王文槿在文档中提到,为什么需要讨论函数式编程(FP),它与面向对象编程(OO)有何不同,以及为什么...

    软件工程PDF课件 08_OODesign面向对象设计.pdf

    面向对象设计是软件工程中的核心...总结起来,面向对象设计是软件工程中的关键步骤,它遵循模块化、内聚、耦合和复用等原则,通过系统设计、对象设计、数据库设计和用户界面设计等环节,创建出高效、可维护的软件系统。

    绝对珍贵的ibm内部培训资料 首次发布

    总结来说,这份IBM内部的"OO项目"培训资料是了解和提升面向对象编程实践的宝贵资源。它涵盖了面向对象设计原则、项目管理技巧、以及IBM在大型软件开发中的最佳实践。对于任何希望在软件工程领域深化专业技能,尤其是...

    工作流设计参考_包括PHP实现

    利用PHP语言特性,流程设计基于数据库,采用面向对象(OO)设计,但采取重对象的方法以减少代码冗余。最后,不考虑可视化流程设计,由专业人员在设计阶段完成,避免频繁的流程版本更新问题。 在数据表设计方面,...

Global site tag (gtag.js) - Google Analytics