`
wuxiaozeng2440
  • 浏览: 27270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计原则

 
阅读更多

 

面向对象”是专指在程序设计中采用封装、继承、多态等设计方法,达到高内聚、低耦合的效果。一个好的系统设计应该具备以下几个性质:灵活性,可扩展性,可插入性。才能让软件具有可维护性和可复用性。

 

常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。

 

1.单一职责原则:

    类的职责要单一。无论是类的属性还是类的方法。承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,可能引起这个类变化的原因就越多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的变化。举个例子来说,软件为什么要分层,而不把一个功能的所有代码全写在一个页面,就是这个道理。

 

2.开闭原则:

    一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。抽象化是开闭原则的关键。里氏代换原则和依赖倒转原则都是开闭原则的实现方式。

 

3.里氏代换原则:

    在软件中如果能够使用基类对象,那么一定能够使用其子类对象。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

 

4.依赖倒转原则  

    代码要依赖于抽象的类,而不要依赖于具体的类;要针对接口或抽象类编程,而不是针对具体类编程。Spring的注入就是依赖倒转的体现。

 

5.接口隔离原则

    一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。意思是使用多个专门的接口,而不使用单一的总接口。和设计模式的门面模式的思想恰好相反。

 

6.合成复用原则

    尽量使用对象组合,而不是继承来达到复用的目的。在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的。简言之:要尽量使用组合/聚合关系,少用继承。下面比较两个复用方式。

    继承复用:实现简单,易于扩展。破坏系统的封装性;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性;只能在有限的环境中使用。(“白箱”复用 )

    组合/聚合复用:耦合度相对较低,选择性地调用成员对象的操作;可以在运行时动态进行。(“黑箱”复用 )

 

7.迪米特法则

    一个软件实体应当尽可能少的与其他实体发生相互作用。如果两个类之间不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 

 

 

 

 

 

分享到:
评论

相关推荐

    系统总体设计原则汇总.doc

    以下是对各个设计原则的详细说明: 1. **系统总体设计原则**: - **统一设计原则**:这强调了在设计时需全局考虑,包括应用系统结构、数据模型、存储和扩展规划,确保一致性。 - **先进性原则**:采用成熟且先进...

    JAVA 24种设计模式介绍与6大设计原则.pdf

    而对于其他模式和原则,应以类似的方式进行学习和应用,不断深入理解每个设计模式的特点和适用场景,以及设计原则的核心指导思想,最终能够在实际开发中灵活运用,编写出高质量、高内聚低耦合、易于扩展的代码。

    触摸屏界面通用设计原则.pdf

    发现了在触摸屏界面设计上存在的问题,深感触摸屏界面可用性的重要性以及在设计中人力物力投资的重复性,从而得出了为触摸屏界面提供一套通用的设计原则的必要性。   文章开篇第一章首先说明了一下研究背景...

    数据库索引设计原则.

    数据库索引设计原则 数据库索引设计原则是 Oracle 数据库管理系统中的一项重要技术,旨在提高数据库的查询效率和性能。以下是数据库索引设计原则的详细解释。 一、基本原则 数据库索引设计原则的基本原则是确保...

    android 24种设计模式介绍与6大设计原则

    在Android开发中,设计模式和设计原则是提升代码质量、可维护性和可扩展性的重要工具。以下是关于"Android 24种设计模式介绍与6大设计原则"的详细阐述: 一、六大设计原则 1. **单一职责原则(Single ...

    24种设计模式介绍与6大设计原则-PDF版 查阅方便

    这个PDF文档“24种设计模式介绍与6大设计原则”旨在帮助开发者理解和应用这些模式,提高代码的可维护性和可扩展性。以下是其中的主要内容: 一、设计原则 1. 单一职责原则:一个类或模块应只有一个引起其变化的原因...

    C++设计原则 完整整理 快速理解设计原则

    面向对象设计原则是软件开发中不可或缺的指导方针,它们旨在提升软件的可维护性和复用性,从而提高开发效率和质量。C++作为一门支持面向对象编程的语言,遵循这些原则可以使代码更加健壮和易于扩展。以下是7个常用的...

    EMI 设计原则及电磁兼容设计原则

    理解并遵循EMI设计原则和电磁兼容设计原则对于提升电路板的抗干扰性能至关重要。 首先,我们要明白EMI是指由于电路中电流的变化产生的电磁场对周围环境产生的影响,这可能会影响其他电子设备的正常工作。为了减少...

    面向对象设计原则.ppt

    面向对象设计原则是软件开发中至关重要的一环,它关乎到代码的可维护性、扩展性和复用性。本文将深入探讨这些原则,并结合实例来解释它们的重要性。 首先,我们需要理解面向对象不仅仅是编程语言中的概念,如封装、...

    HWS公有云架构设计原则和目标架构.pptx

    【HWS公有云架构设计原则】 华为公有云架构设计遵循一系列关键原则,旨在构建一个高效、灵活且可扩展的云服务环境。以下是这些原则的详细解释: 1. **开放API原则**:所有子系统,包括Portal/Console、BSS...

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

    通过以上三个面向对象的设计原则,我们可以构建出更加健壮、灵活且易于维护的软件系统。这些原则不仅适用于特定的语言环境,而且对于所有的面向对象编程语言都有普遍的意义。理解和掌握这些原则,对于提升软件开发的...

    PCB设计原则归纳整理

    高速PCB EMC设计的47个原则二、PCB设计原则归纳 原则1:PCB时钟频率超过5MHZ或信号上升时间小于5ns,一般需要使用多层板设计。 原因:采用多层板设计信号回路面积能够得到很好的控制。 原则2:对于多层板,关键...

    软件设计原则与实践

    在软件设计领域,设计原则是指导软件系统构建的基础法则和最佳实践,它们可以帮助开发者构建出更加灵活、可维护和可扩展的系统。在嵌入式系统开发中,这些原则同样适用,并且需要根据嵌入式环境的特殊性进行适当的...

    web界面设计原则

    ### Web界面设计原则详解 #### 引言 Web界面设计是一项综合艺术与科学的技能,旨在创造既美观又实用的在线体验。良好的Web界面不仅能够吸引用户,还能引导他们高效地完成目标。本文将深入探讨Web界面设计的核心...

    java设计 原则61条

    ### Java设计原则详解 #### 一、基本原则与实践 **原则1:避免不必要的代码重复** 根据Arthur J. Riel的观点,在设计时应当避免代码的重复。例如在第13页提到,应尽量减少相似功能模块的重写,这有助于提高代码的...

    24种设计模式介绍与6大设计原则

    24种设计模式介绍与6大设计原则24种设计模式介绍与6大设计原则

    面向对象的设计原则——类设计原则

    面向对象设计原则是软件工程领域中的重要组成部分,旨在提高软件系统的可维护性、可扩展性和灵活性。其中,类设计原则尤为关键,它们指导着开发者如何合理地构建类,以适应不断变化的需求。以下是对给定文件中提及的...

    数据采集系统设计原则与基本方法

    数据采集系统设计原则与基本方法 数据采集系统设计原则与基本方法是数据采集系统设计的基础,掌握这些原则和方法是设计高质量的数据采集系统的关键。本文将对数据采集系统设计的基本原则和方法进行详细的解释。 一...

    swift-面向对象设计的设计原则和设计模式

    设计原则和设计模式是OOD的核心概念,它们为开发者提供了指导思想和最佳实践,以创建可维护、可扩展和易于理解的代码。在Swift中,遵循这些原则和模式可以帮助我们编写出更加灵活和高效的软件。 面向对象设计的原则...

Global site tag (gtag.js) - Google Analytics