• 程序设计原则


    结构化设计的两个基本原则

      高内聚,低耦合

    高内聚

      在面向对象的设计中,目标就是设计出高内聚、低耦合的程序。

      聚合(cohesion):聚合是一个模块内部各成分之间相关联程度的度量

    聚合的理解

      聚合是对一个模块内部的度量,因为是对一个模块内部的度量,所以聚合也成为内聚,这里的模块是广义上的模块,它代表的可能是一个子系统,或者是功能模块,或者是功能模块中的某一个类。从不同的层次看,聚合的程度也有所不同,模块的成分又包括模块的行为和状态,要做到高内聚,那么模块内部的行为必须要与模块的内部状态紧密关联,比如说,一个模块仅完成一个独立的功能,那么模块内部不存在与该功能无关的操作或状态。

      聚合举例说明

      一家公司,员工在A上班,在B住宿,把公司看成一个模块,那么员工上班从B到A需要一定的时间,如果堵车各种原因,还可能会迟到,影响工作效率,如果员工在A旁边住宿,就大大提高了效率,所以在这个公司模块中,上班和住宿就是模块内部的成分,在A上班在B住宿就使得聚合程度降低,无法提高效率,要做到高内聚,就要是模块内部成分紧密相连,所以在A上班在A 旁边住宿就实现了高内聚。

    低耦合:耦合是模块之间相关联程度的度量。

    耦合

      耦合是模块之间相关联程度的度量,相对于聚合的内向性,耦合关注的是某一模块和其他模块之间的关联性。

    耦合举例说明

      一家公司,员工在A上班,在B住宿,把A,B分别看成是两个模块,那么如果在员工在宿舍里耽误了时间,那么就会迟到,这样A就会依赖B,再举一个例子,小霸王插卡游戏机,有卡和游戏机两部分组成,那么如果卡坏了,就可以换个卡再用之前的游戏机继续玩游戏,如果游戏机坏了,就可以继续用卡玩游戏,只需要换个游戏机就行了,所以在编程中,A依赖B这种就叫做耦合,游戏机例子就是低耦合的代表,低耦合就是要做到模快之前依赖减少,互不影响。

      

      

  • 相关阅读:
    三伏天,华为路由器 AX3 PRO 发热严重,网络断流,改装散热清凉一夏
    MVC扩展(ControllerFactory VS DependencyResolver)
    MVC扩展(Templated Razor Delegates)
    RouteDebugger分析
    MVC扩展(ModelBinder)
    ORACLE 创建多个游标并嵌套循环
    java final初解
    oracle partition by 与 partition by ... order by 分组
    JS实现函数重载2
    使用XslCompiledTransform将XML 转HTML
  • 原文地址:https://www.cnblogs.com/juteng/p/9260845.html
Copyright © 2020-2023  润新知