`
砺雪凝霜
  • 浏览: 156477 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

软件设计原则

 
阅读更多

 

1 OCP(open - close Principle)

    又叫"开-闭"原则,指的是在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换而言之,应当可以在不被修改的情况下改变模块的行为。
     所有的软件系统都有一个共同的性质,即对他们的需求都是会随着时间的推移而发生变化,在软件系统面临新的需求时,系统的设计必须是稳定的,满足“开-闭”原则的设计可以给软件系统2个无可比拟的优越性:
  • 通过扩展已有软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性 和灵活性。
  • 已有的软件模型,特别是最终的抽象层模块,不能再被修改,这就使变化中的软件系统有一定的稳定性和 延续性。
   体现:策略设计模式,桥梁设计模式

2 里氏代换原则

    里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
    里氏代换原则是对“开-闭”原则的补充,正如前面讲到的,实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系
就是抽象化的具体体现,所以里氏代换原则是对实现抽象化的具体步奏的规范。一般而言,违反里氏代换原则的,也一定违背“开-闭”原则。

3 依赖倒转原则

    依赖倒转原则讲的是,要依赖于抽象,不要依赖于实现。看上去依赖原则与OCP原则有很大的相似之处,实际上,它们之间的关系
是目标和手段之间的关系。OCP原则是目标,而达到这一目标的手段是依赖倒转原则。
   换言之,要实现OCP原则就应当坚持依赖倒转原则。违反依赖倒转原则就不可能达到OCP原则的要求。

4 合成/聚合复用原则

    合成/聚合可以将已有的对象纳入到新对象中,使之成为新对象的一部分,因此新的对象可以调用已有对象的功能,
合成/聚合复用的原则是尽量使用合成/聚合,而不是使用继承关系达到复用的目的。
   合成/聚合复用原则是与里氏代换原则相辅相成的,两者又都是对实现OCP原则的具体步骤的规范,前者要求设计师首先考虑
合成/聚合关系,后者要求在使用继承关系时,必须确定这个关系时符合一定条件的。
   体现:装饰设计模式

5 迪米特法则

    迪米特法则讲的是,一个软件实体应当尽可能少的与其他实体发生相互作用。也就是说应该降低各个模块之间的耦合度。
    当一个系统面临功能扩展的时候,其中一些模块,他们可能需要修改的压力比其他模块要大,最后的结果可能是这些模块需要
最后的结果可能是这些模块需要修改或者不需要修改。但是不论是哪一种情况,如果这些模块是相互独立的,那么他们就不会将这些
修改的压力传递给其它的模块。
   也就是说,一个遵守迪米特原则设计出来的 系统在功能需要扩展时,会相对容易的做到修改的关闭。也就是说,迪米特法则是一条通向OCP原则的道路。

6 接口隔离原则

     接口隔离原则讲的是,应当为客户端提供尽可能小的单独接口,而不是提供大的总接口。显然,接口隔离原则与广义的迪米特法则都是对一个软件实体与其他软件实体的通信限制,广义的迪米特法则要求尽可能限制通信的宽度和深度。接口隔离原则所限制的是通信的宽度,也就是说,通信应当尽可能地窄。
     显然遵循接口隔离原则和迪米特法则,会使一个软件系统在功能扩展的过程中,不会将修改的压力传递给其它的对象。
 
 
 
 
 
 
 
 
 

 

1
0
分享到:
评论

相关推荐

    软件设计原则与实践

    总结来说,软件设计原则在嵌入式领域的应用,要求开发者在设计和实现时考虑系统的可维护性、可扩展性和复用性。通过合理应用开闭原则、单一职责原则、模块化、依赖倒置原则、设计模式以及代码结构的继承和抽象,可以...

    一些软件设计的原则一些软件设计的原则

    【软件设计原则详解】 在软件开发领域,遵循一系列设计原则对于构建高质量、可维护和易于扩展的系统至关重要。以下是一些关键的软件设计原则,它们不仅适用于编程,还能应用于更广泛的生产活动和生活。 1. **Don’...

    软件设计原则-面向对象设计七大原则.zip

    软件设计原则-面向对象设计七大原则.zip 面向对象和C语言完全不是一种思考问题的方式,面向对象是种哲学思想,只有明白了其核心思想,才能以不变应万变 只有吃透面向对象的七大设计原则,比如:依赖倒置原则,迪米特法则等...

    设计模式——6大软件设计原则(demo案例实现,附带解析,快速掌握软件设计原则的精髓)

    该包下的所有demo都是一个个的软件设计原则的案例实现 包含有: 1、开闭原则 2、里氏代换原则 3、依赖倒转原则 4、接口隔离原则 5、迪米特法则 6、合成复用原则 使用了一个个的demo案例,以通俗易懂的生活...

    软件工程中的软件设计原则与设计模式.pptx

    ### 软件工程中的软件设计原则与设计模式 #### 第一章:软件设计原则与设计模式简介 **软件设计原则介绍** 软件设计原则是指在软件开发过程中遵循的一系列基本规则和准则,这些原则旨在帮助开发者设计出结构良好...

    软件工程中的软件设计原则与模式教程1.pptx

    ### 软件工程中的软件设计原则与模式 #### 第一章:软件设计原则的重要性 在软件工程领域,软件设计原则对于构建高质量、高效率的软件系统至关重要。本章节将重点介绍软件设计原则的重要意义,并深入探讨几种核心...

    02-软件设计原则 模式深度解析和案例分析

    ### 软件设计原则与模式深度解析及案例分析 #### 一、软件设计原则的重要性与深度解析 软件设计原则是构建高质量软件的基础。遵循良好的设计原则可以帮助开发者编写出易于维护、扩展性强、且具有良好性能的软件...

    软件设计原则.pptx

    软件设计原则是软件开发中的核心指导思想,它们旨在提高代码的可读性、可维护性和可扩展性。在本文中,我们将深入探讨这六大设计原则,包括它们的定义、应用场景以及如何通过遵循这些原则来优化软件开发过程。 首先...

    软件工程中的软件设计原则与模式.pptx

    ### 软件工程中的软件设计原则与模式 #### 第1章 软件设计原则与模式概述 **软件设计原则介绍** 软件设计原则是指在软件开发过程中为提高软件的质量和可维护性而遵循的一系列设计准则。这些原则主要包括: 1. **...

    软件工程中的软件设计原则与模式教程.pptx

    ### 软件工程中的软件设计原则与模式教程 #### 第1章 软件设计原则的重要性 在软件工程领域,软件设计原则是构建高质量软件系统的基础。这些原则旨在指导开发者设计出健壮、可维护且易于扩展的系统。本章节重点...

    软件工程中的软件设计原则与模式1.pptx

    ### 软件工程中的软件设计原则与模式 #### 第一章:软件设计原则与模式概述 ##### 软件设计原则介绍 软件设计原则是在软件开发过程中为提高软件的质量和可维护性而遵循的一系列设计准则。这些原则旨在帮助开发...

    软件工程中的软件设计原则与模式讲解详评.pptx

    ### 软件工程中的软件设计原则与模式详解 #### 第一章:软件工程概述 **1.1 软件工程简介** 软件工程是一门跨学科领域,它结合了计算机科学、工程学以及管理学等多个领域的知识和技术,旨在解决软件开发过程中...

    各软件设计原则在本项目中的应用1

    在本项目中,软件设计原则的应用对于代码的结构和可维护性起到了关键作用。以下是各个原则的具体体现: 1. **单一职责原则**:遵循这一原则,项目中的`controller`类被设计为各自拥有一个明确的职责。例如,`...

    软件设计原则与设计模式.pptx

    软件设计原则与设计模式.pptx

    读书笔记:软件设计原则与设计模式 Java实现.zip

    读书笔记:软件设计原则与设计模式 Java实现

    软件工程与软件系统设计原则.pptx

    #### 第三章:软件设计原则 **设计原则的重要性:** 良好的设计原则对于构建高质量、可维护的软件至关重要。它们帮助开发者: - **优化软件架构:**确保系统结构合理,易于理解和扩展。 - **提高代码质量:**促进...

    1. 软件设计原则(1).md

    1. 软件设计原则(1).md

Global site tag (gtag.js) - Google Analytics