zoukankan      html  css  js  c++  java
  • 【java基础领域】高内聚、低耦合理解

    低耦合,我给大家举一个例子,公司里面的董事长只会和总经理打交道,董事长的下层接口是总经理,总经理手底下右个副总经理,那么,总经理就和3个副总经理打交道,3个副总每一个人管理一个业务部门,副总经理只和部门经理打交道,部门经理手底下有自己部门的员工,但是部门经理只和团队的队长打交道,团队队长和所有团员打交道 这样一个非常分明的层次关系,不会让董事长来交叉管理团员,也不会让总经理来管部门经理
    如果交叉在一起,就是强耦合

    解耦的思想是让每一个角色,只依赖他的下层接口,让各个角色尽量保持独立,他们之间完全隔离,这个思想叫做去除耦合

    这是分层思想,和mvc有区别

    低耦合有什么好处呢?万一有一个副总经理辞职了,那么,他影响的范围非常小,他只会影响到总经理和部门经理这两个上下接口层次,而对于董事长,和团员之间,是透明的,根本感觉不到有一个人辞职了,因为董事长的下层接口是总经理,他根本就看不见副总经理

    高内聚这个也很简单,就是道不同不相为谋,放在一起的,一定是大家紧密合作的,齐心一直的,如果有一个人很游离,我们想办法让他出去,那么一个类就可能分化成两个类.好比说,现在有一个汽车类,里面有方向盘属性,有论坛属性,有座椅属性,有发动机属性,轮胎,你们发现了没有,座椅和发动机有关系吗?对,那么我们就不能把所有东西都放在汽车类,而是有单独的方向盘类,单独的座椅类,单独的发动机类,但是方向盘和发动机之间可能会有某种联系,那么,他们之间可以为对方保持接口互动,但是座椅类是完全没有联系的,他是独立不用和其他地方交互的,这个分割过程可以继续持续下去,方向盘里面也许也会有很多类,直到你觉得可以不用分为止.


    分割的标准是:直到分到很小的类对象单元,问题已经可以很轻松的解决了,已经到了可以很难容易控制的阶段,就可以停止分割了.

    我们做任何事情,任何设计的目的只有一个就是让软件开发变得更轻松,更灵活,更好理解

    --柳大之作

  • 相关阅读:
    .NET 实现复制粘贴功能
    调用接口并且判断是否写日志(用一个参数来控制)
    Javascript知识——事件
    Swift开发的几个小技巧(整理自图拉鼎的博客)
    Swift 闭包表达式
    使用Xcode 的Debugging
    iOS开发中的ARC内存管理de技术要点
    iOS客户端de公共WIFI解决方案
    Crash log符号化与调试信息
    iOS NSNotificationCenter 使用姿势详解
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860987.html
Copyright © 2011-2022 走看看