zoukankan      html  css  js  c++  java
  • 高内聚,低偶合

    内聚:一个模块内各个元素彼此结合的紧密程度

    耦合:一个软件结构内不同模块之间互连程度的度量


    最近编码的时候,总是在犹豫是把某个方法封装在一个类里,还是单独的封装成一个类。这让我突然想起内聚耦合这两个名词。

    我们一直追求着,高内聚,低耦合。

    对于低耦合,我粗浅的理解是:

    一个完整的系统,模块与模块之间,尽可能的使其独立存在。

    也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

    模块与模块之间的接口,尽量的少而简单。

    如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

    这样有利于修改和组合。

    对于低耦合,我粗浅的理解是:

    在一个模块内,让每个元素之间都尽可能的紧密相连。

    也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。

    如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。

    内聚和耦合,包含了横向和纵向的关系。功能内聚和数据耦合,是我们需要达成的目标。横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。

    对于我在编码中的困惑,我是这样想的,用面向对象的思想去考虑一个类的封装。
    一个方法,如何封装,拿到现实生活中来看,看这种能力(方法)是否是属于这类事物(类)的本能。
    如果是,就封装在这个类里。
    如果不是,则考虑封装在其它类里。
    如果这种能力,很多事物都具有,则一定要封装在这类事物的总类里。
    如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。

  • 相关阅读:
    STM32学习笔记1(ADC多通道采样)
    SQL Server索引管理之六大铁律
    如何激励员工?
    第一周学习计划
    山寨STL实现之traits,construct&destruct
    山寨STL实现之内存池
    山寨STL实现之vector
    山寨STL实现之allocator
    Python 开发环境搭建
    Java | Python 流程控制对比
  • 原文地址:https://www.cnblogs.com/xcj26/p/1725808.html
Copyright © 2011-2022 走看看