`
齐晓威_518
  • 浏览: 618129 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

高内聚低耦合以及开闭原则

 
阅读更多

从事软件开发的人在工作过程中有时避免不了要封装一些常用的功能给自己或其他人使用,比如数据库连接类、文件上传类、图片处理类等,如果想把类封装得好一点,除了要考虑使用设计模式、可扩展性、可维护性以外,还需要考虑高内聚低耦合、以及开闭原则的问题 ,本篇文章讲的就是这些内容。

1.高内聚低耦合

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向过程的设计,主要是看类的内聚性是否高,耦合度是否低。

高内聚
高内聚就是一个模块内各个元素彼此结合的紧密程度高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

低耦合
耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。 ) 对于低耦合,粗浅的理解是:

  一个完整的系统,模块与模块之间,尽可能的使其独立存在。
  也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
  模块与模块之间的接口,尽量的少而简单。
  如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
  这样有利于修改和组合。

Via:
http://baike.baidu.com/view/3082578

http://wenku.baidu.com/view/bb784236ee06eff9aef807ba.html
http://www.baidu.com/s?wd=%B8%DF%C4%DA%BE%DB%B5%CD%F1%EE%BA%CF

2.开闭原则
开闭原则是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。

   1988年,Bertrand Meyer在他的著作《Object Oriented Software Construction》中提出了开闭原则,它的原文是这样:“Software entities should be open for extension,but closed for modification”。翻译过来就是:“软件实体应当对扩展开放,对修改关闭 ”。这句话说得略微有点专业,我们把它讲得更通俗一点,也就是:软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等等,应该在不修改现有代码的基础上,引入新功能开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;开闭原则中“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码

开闭原则能够带来什么好处
  如果一个软件系统符合开闭原则的,那么从软件工程的角度来看,它至少具有这样的好处:
  可复用性好。
  我们可以在软件完成以后,仍然可以对软件进行扩展,加入新的功能,非常灵活。因此,这个软件系统就可以通过不断地增加新的组件,来满足不断变化的需求。

  可维护性好。
  由于对于已有的软件系统的组件,特别是它的抽象底层不去修改,因此,我们不用担心软件系统中原有组件的稳定性,这就使变化中的软件系统有一定的稳定性和延续性。

Via:
http://baike.baidu.com/view/866233.htm

http://wenku.baidu.com/view/3b99dbbfc77da26925c5b05a.html
http://www.baidu.com/s?wd=%BF%AA%B1%D5%D4%AD%D4%F2

分享到:
评论

相关推荐

    图解高内聚与低耦合.docx

    通过理解并实践高内聚与低耦合的原则以及相关的接口设计原则,可以显著提高软件系统的质量和可维护性。这些概念不仅适用于传统的面向对象编程,同样也适用于现代的微服务架构和其他软件开发模型。

    开闭原则1

    3. **降低耦合度**:高内聚、低耦合的设计是遵循开闭原则的关键,这样可以使得各个模块的功能更加独立,减少模块间的相互影响。 4. **增强设计的灵活性**:通过面向接口编程,可以在不修改具体实现的情况下,改变...

    软件设计的七大原则(OOD)

    SRP可以提高内聚降低耦合,高内聚低耦合是设计师追求的理想,低内聚高耦合会导致模块灵活性、可复用性、可扩展性和可维护性降低。SRP的核心是在抽象层面和实现层面正确地抽象和分离职责。 二、OCP(Open-Close ...

    六种设计原则

    本文将详细探讨六种核心的设计原则,它们分别是开闭原则(Open-Closed Principle, OCP)、里氏代换原则(Liskov Substitution Principle, LSP)、迪米特法则(Law of Demeter, LoD)、依赖倒转原则(Dependency ...

    程序员必备的七大面向对象设计原则

    单一职责原则的目的是为了提高类的内聚性和可维护性。 四、接口隔离原则 接口隔离原则定义为:客户端不应该被迫依赖于它不使用的接口。接口隔离原则的目的是为了减少系统的耦合度和提高系统的灵活性。 五、迪米特...

    面向对象的设计的原则 电子版

    单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则。 2. 开闭原则(OCP):一个软件实体应当对扩展开放,对修改关闭。开闭原则是面向对象设计的核心原则之一,它告诉我们,在软件设计中,...

    软件体系结构七大设计原则

    软件体系结构七大设计原则是构建高质量软件系统的基础,它们分别是:单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、迪米特法则和合成聚合原则。这些原则旨在提高软件的可维护性、可扩展性和可...

    DOD启示录之程序设计经验原则总结

    12. **GRASP(General Responsibility Assignment Software Principles)原则**:这是一组用于指导对象职责分配的原则,如高内聚、低耦合、创建者拥有、间接引用、多态等。 以上原则在实际编程中并非孤立存在,而是...

    技术架构视图-设计原则与模式

    它包含了诸如高内聚、低耦合、信息专家、控制者、纯虚构等概念,为解决常见的设计问题提供了实用的策略。通过应用GRASP模式,开发者可以更好地理解和处理复杂系统中的各种设计决策,从而提高软件的结构质量和运行...

    软件工程阶段性报告原则

    Home)、企业界面(Company, CompanyHome)以及注册(Sign)、信息管理(Infor)、密码修改(Password)等职责的类,实现职责的分离,提高代码的高内聚和低耦合。 2. 开闭原则(Open-Closed Principle, OCP) 开闭...

    程序设计模式作业二1

    首先,好的设计系统应该具备高内聚和低耦合的特性。高内聚意味着系统内的组件专注于执行特定任务,减少内部组件间的复杂交互。而低耦合则是指组件之间的依赖关系尽可能少,这样改动一个组件时不会影响到其他组件。...

    设计模式和原则(很实用)

    1. **开闭原则**:软件实体(类、模块、函数等)应对外部扩展开放,对内部修改关闭。这意味着我们可以增加新功能而不破坏现有代码。 2. **里氏替换原则**:子类必须能够替换其基类,并且在任何不使用子类型特性的...

    设计模式6大原则.zip

    这有助于减少类之间的耦合度,提高系统的内聚性。 在《Spring源码深度解析.pdf》中,可能会详细介绍Spring框架如何应用这些原则。Spring作为一个广泛使用的Java企业级应用框架,其设计和实现充分体现了SOLID原则。...

    Adaptive Code

    耦合和内聚是衡量代码模块化质量的两个重要指标,高内聚和低耦合是软件设计的理想状态。连贯性指的是代码中各种元素之间的一致性和相互关联。 通过这些知识点的深入探讨,《自适应代码》这本书为读者提供了一套全面...

    OOP的基本设计原则1

    比如,大学学生工作管理程序中,将生活辅导和学业指导分开,由不同角色负责,提高了类的内聚性。 5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该被迫依赖于它不使用的方法。这意味着接口...

    Java设计模式、设计原则、UML学习资料.zip

    这些原则有助于编写出松耦合、高内聚的代码,使得系统更易于理解和维护。例如,单一职责原则要求一个类或模块只做一件事情,这样可以减少类之间的耦合;开闭原则则指出软件实体应对扩展开放,对修改关闭,意味着添加...

    java\软件设计中的原则(GRASP)

    这些原则旨在提高软件的内聚性和降低耦合度,从而使得系统更加稳定和易于扩展。下面,我们将详细探讨GRASP中的各个模式以及它们在实际开发中的应用。 1. 专家模式(Expert):这个模式强调将职责分配给拥有完成该...

    java oo 设计原则

    这些原则包括单一职责原则(SRP)、不要重复代码原则(DRY)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)以及接口隔离原则(ISP)。下面将详细阐述这些原则及其重要性。 1. 单一职责原则(Single ...

    面向对象六大原则demo

    这些原则在设计模式中得到了广泛应用,帮助我们构建可维护、可扩展、高内聚、低耦合的代码。 1. **单一职责原则(SRP)**:一个类或者模块应该只有一个引起它变化的原因。这意味着一个类应只做一件事情,这样可以...

Global site tag (gtag.js) - Google Analytics