zoukankan      html  css  js  c++  java
  • 面向对象原则:高内聚低耦合

    实际上,大多数框架都替我们考虑了这些问题,这就是为什么我们在框架规范的要求下写出的代码更流畅(至少以前给我的感觉是这样),言归正传。

    高内聚、低耦合的定义:

    内聚:每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码。 
    耦合:模块与模块之间接口的复杂程度,模块之间联系越复杂耦合度越高,牵一发而动全身。 
    目的:使得模块的“可重用性”、“移植性”大大增强 
    通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低 

    对于函数来说:

    高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合) 
    低耦合:减少类内部,一个成员方法调用另一个成员方法 

    对于类来说:

    高内聚低耦合:减少类内部,对其他类的调用

    对于功能块来说:

    高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)

    耦合的划分,它们之间的耦合度由高到低排列如下:

    (1) 内容耦合:一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。

    若在程序中出现下列情况之一,则说明两个模块之间发生了内容耦合:

    1. 一个模块直接访问另一个模块的内部数据。

    2. 一个模块不通过正常入口而直接转入到另一个模块的内部。

    3. 两个模块有一部分代码重叠(该部分代码具有一定的独立功能)。

    4. 一个模块有多个入口。

    内容耦合可能在汇编语言中出现。大多数高级语言都已设计成不允许出现内容耦合。这种耦合的耦合性最强,模块独立性最弱。

    (2) 公共耦合:一组模块都访问同一个全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。如果模块只是向公共数据环境输入数据,或是只从公共数据环境取出数据,这属于比较松散的公共耦合;如果模块既向公共数据环境输入数据又从公共数据环境取出数据,这属于较紧密的公共耦合。

    耦合带来的问题:

    代码可维护性差、理解性差、新增功能模块繁琐。

    高内聚低耦合的优势:

    事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

  • 相关阅读:
    The Python Standard Library
    Python 中的round函数
    Python文件类型
    Python中import的用法
    Python Symbols 各种符号
    python 一行写多个语句
    免费SSL证书(https网站)申请,便宜SSL https证书申请
    元宇宙游戏Axie龙头axs分析
    OLE DB provider "SQLNCLI10" for linked server "x.x.x.x" returned message "No transaction is active.".
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "xxx.xxx.xxx.xxx" was unable to begin a distributed transaction.
  • 原文地址:https://www.cnblogs.com/zenan/p/9959785.html
Copyright © 2011-2022 走看看