【java基础】高内聚、低耦合理解
2018-03-28 21:30
471 查看
低耦合,我给大家举一个例子,公司里面的董事长只会和总经理打交道,董事长的下层接口是总经理,总经理手底下右个副总经理,那么,总经理就和3个副总经理打交道,3个副总每一个人管理一个业务部门,副总经理只和部门经理打交道,部门经理手底下有自己部门的员工,但是部门经理只和团队的队长打交道,团队队长和所有团员打交道 这样一个非常分明的层次关系,不会让董事长来交叉管理团员,也不会让总经理来管部门经理
如果交叉在一起,就是强耦合
解耦的思想是让每一个角色,只依赖他的下层接口,让各个角色尽量保持独立,他们之间完全隔离,这个思想叫做去除耦合
这是分层思想,和mvc有区别
低耦合有什么好处呢?万一有一个副总经理辞职了,那么,他影响的范围非常小,他只会影响到总经理和部门经理这两个上下接口层次,而对于董事长,和团员之间,是透明的,根本感觉不到有一个人辞职了,因为董事长的下层接口是总经理,他根本就看不见副总经理
高内聚这个也很简单,就是道不同不相为谋,放在一起的,一定是大家紧密合作的,齐心一直的,如果有一个人很游离,我们想办法让他出去,那么一个类就可能分化成两个类.好比说,现在有一个汽车类,里面有方向盘属性,有论坛属性,有座椅属性,有发动机属性,轮胎,你们发现了没有,座椅和发动机有关系吗?对,那么我们就不能把所有东西都放在汽车类,而是有单独的方向盘类,单独的座椅类,单独的发动机类,但是方向盘和发动机之间可能会有某种联系,那么,他们之间可以为对方保持接口互动,但是座椅类是完全没有联系的,他是独立不用和其他地方交互的,这个分割过程可以继续持续下去,方向盘里面也许也会有很多类,直到你觉得可以不用分为止.
分割的标准是:直到分到很小的类对象单元,问题已经可以很轻松的解决了,已经到了可以很难容易控制的阶段,就可以停止分割了.
我们做任何事情,任何设计的目的只有一个就是让软件开发变得更轻松,更灵活,更好理解
--柳大之作
如果交叉在一起,就是强耦合
解耦的思想是让每一个角色,只依赖他的下层接口,让各个角色尽量保持独立,他们之间完全隔离,这个思想叫做去除耦合
这是分层思想,和mvc有区别
低耦合有什么好处呢?万一有一个副总经理辞职了,那么,他影响的范围非常小,他只会影响到总经理和部门经理这两个上下接口层次,而对于董事长,和团员之间,是透明的,根本感觉不到有一个人辞职了,因为董事长的下层接口是总经理,他根本就看不见副总经理
高内聚这个也很简单,就是道不同不相为谋,放在一起的,一定是大家紧密合作的,齐心一直的,如果有一个人很游离,我们想办法让他出去,那么一个类就可能分化成两个类.好比说,现在有一个汽车类,里面有方向盘属性,有论坛属性,有座椅属性,有发动机属性,轮胎,你们发现了没有,座椅和发动机有关系吗?对,那么我们就不能把所有东西都放在汽车类,而是有单独的方向盘类,单独的座椅类,单独的发动机类,但是方向盘和发动机之间可能会有某种联系,那么,他们之间可以为对方保持接口互动,但是座椅类是完全没有联系的,他是独立不用和其他地方交互的,这个分割过程可以继续持续下去,方向盘里面也许也会有很多类,直到你觉得可以不用分为止.
分割的标准是:直到分到很小的类对象单元,问题已经可以很轻松的解决了,已经到了可以很难容易控制的阶段,就可以停止分割了.
我们做任何事情,任何设计的目的只有一个就是让软件开发变得更轻松,更灵活,更好理解
--柳大之作
相关文章推荐
- 关于JAVA 封装性 以及高内聚,低耦合的理解
- 关于java基础中++a和a++的理解
- java基础之抽象 (通过教师资格证考核模拟现实,理解面向对象和抽象)
- JAVA基础之理解JNI原理
- 内聚和耦合(自己的理解)
- java 基础学习-02 基础中的理解点
- 黑马程序员——Java基础---理解单例设计模式
- java基础(11)-- 深入理解Arrays.sort()
- JAVA基础之理解JNI原理
- JVM入门,java环境基础+理解内存+垃圾判定、回收算法
- java基础HashSet 和 TreeSet 理解
- 深入理解Java并发机制(1)--理论基础
- 【JAVA基础】 - 对于String创建对象的理解
- java多聚合,少继承,低耦合,高内聚
- JAVA基础之理解JNI原理
- Java基础之理解Annotation(自定义注解)
- Java基础-理解散列与散列码
- Java必须理解的六大基础问题
- 【Java基础】理解 Java 垃圾回收机制
- 高内聚,低耦合的一些理解