---------------------------------------------
-- 时间:2019-03-06
-- 创建人:Ruo_Xiao
-- 邮箱:xclsoftware@163.com
---------------------------------------------
1、高内聚:将功能相关的部分尽量整合在一块,使其聚合。
2、低耦合:将功能不相关的模块尽量分开,降低之间的依赖。
低耦合的一个法则就是迪米特法则又叫最少知道原则,其内容为一个类对自己所依赖的类知道的越少越好。
栗子:我所依赖的类可能有1000个功能,但是我实际只用其3个功能,按照其原则,按照低耦合的宗旨,我对这个所依赖的类知道的越少,我俩的耦合性不就越低了么。所以,根据我和我所依赖的类之间逻辑关系,将该关系封装成接口,我只需要调用我所依赖的类的接口即可,这样就达到了低耦合的目的,这也是该原则的精髓所在。
关于低耦合,下面是我见到的最通俗易懂的栗子,和大家分享一下:
公司里面的董事长只会和总经理打交道,董事长的下层接口是总经理,总经理手底下3个副总经理,那么,总经理就和3个副总经理打交道。3个副总每一个人管理一个业务部门,副总经理只和部门经理打交道,部门经理手底下有自己部门的员工,但是部门经理只和团队的队长打交道,团队队长和所有团员打交道。这样一个非常分明的层次关系,不会让董事长来交叉管理团员,也不会让总经理来管部门经理。
如果交叉在一起,就是强耦合
解耦的思想是让每一个角色,只依赖他的下层接口,让各个角色尽量保持独立,他们之间完全隔离,这个思想叫做去除耦合
这是分层思想,和mvc有区别。
低耦合有什么好处呢?万一有1个副总经理辞职了,那么他影响的范围非常小,他只会影响到总经理和部门经理这两个上下接口层次,而对于董事长和团员之间是透明的,根本感觉不到有一个人辞职了,因为董事长的下层接口是总经理,他根本就看不见副总经理。
总的来说,做软件设计最终的目的是让软件开发更轻松、更灵活(功能可减可增)、更好理解(脉络清晰、快速定位bug)。
参考链接:https://blog.csdn.net/jia970426/article/details/79734490
(SAW:Game Over!)