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

OO原则总结

阅读更多

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

      基础的OO原则无非有三:

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

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

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

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

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

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

 

     

分享到:
评论

相关推荐

    OO设计原则总结.doc

    OO设计原则总结.doc 想回会帮助大家的

    OO设计原则总结

    关于设计模式的一些总结介绍!

    本人3年内面试总结java

    java面试,面试笔试,本人3年内面试总结java,包括java基础,jsp,servlet,等基本功。 还有OO设计原则。系统架构等等

    java 工程师简历

    •技术方面:对Struts、Spring、Hibernate、Log4J、JDom、Memcache、Quartz、jQuery、JSON等技术能熟练使用,尤其是SSH的整和开发,js ajax的高用户体验的效果,项目的框架设计及OO原则的重要性,代码重构与代码的可维护...

    设计模式,软件开发者必读

    1.5 OO设计七原则 7 1.5.1 开-闭原则(OPEN-CLOSED PRINCIPLE, OCP): 7 1.5.2 里氏代换原则(LISKOV SUBSTITUTION PRINCIPLE,常缩写为.LSP) 8 1.5.3 依赖倒置原则(DEPENDENCE INVERSION PRINCIPLE) 8 1.5.4 接口隔离...

    GB 50055-2011通用用电设备配电设计规范.chm

    本规范在修订过程中,编制组进行了广泛的调查研究,总结了原规范在使用过程中的经验,结合科学技术和生产力的发展水平,本着“统一、协调、简化、优选”的原则进行修订,并征求了广大设计、科研、生产等各有关单位的...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。...这也是我们软件设计所准求的,因此无论是OO中的封装、继承、多态,还是我们的设计模式的原则和实例都是在为了这两个目标努力着、贡献着。

    【JavaScript源代码】如何以拖拽方式生成Vue用户界面.docx

    如何以拖拽方式生成Vue用户界面  目录 前言一、技术原理 ...本着在不损失灵活性的前提下尽可能提高开发效率的原则,作者尝试在框架内集成了拖拽方式生成Vue用户界面的功能作为补充,以方便快速生成增删

    js-oop-intro

    目标JavaScript中的面向对象编程用学生自己的话总结OO原则:封装,抽象,模块化定义“面向对象编程”,并将其与功能编程进行比较和对比。 解释什么是构造函数,以及为什么创建对象时它们有助于防止冗余检查...

    OOP_ex1:OOP练习1

    用学生自己的话总结OO原则:封装,抽象,模块化 定义“面向对象编程”,并将其与功能编程进行比较和对比。 解释什么是构造函数,以及为什么创建对象时它们有助于防止冗余 检查JavaScript的全局对象(如Array , ...

    UML和模式应用(架构师必备).part01.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part07.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    asp.net知识库

    简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了...

    UML和模式应用(架构师必备).part02.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part06.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part03.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part04.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part08.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

    UML和模式应用(架构师必备).part05.rar

    17.4 GRASP:基本OO设计的系统方法 17.5 职责、GRASP和UML图之间的联系 17.6 什么是模式 17.7 现在我们所处的位置 17.8 使用GRASP进行对象设计的简短示例 17.9 在对象设计中应用GRASP 17.10 创建者 17.11 ...

Global site tag (gtag.js) - Google Analytics