一、解耦的定义
解耦就是把系统功能和逻辑拆分。
为什么拆分。一个不解耦的系统就像把若干根线缠绕到一起,你想抽出任何一根都困难;不解耦的系统就像堆的混乱无序的衣柜,你想找到你想要的衣服需要翻箱倒柜还找不到。
拆分后的系统,就像你家分类整理好的衣柜,春天的,夏天的,外套,内衣分类放好,你今天想穿哪件很容易找到。
二、解耦就是对抗变化和混乱
熵增定律讲在一个孤立系统里,如果没有外力做功,其总混乱度(即熵)会不断增大。系统需求每天都在增加,每天都在增加功能,如果我们不做好规划和整理,系统一定会越来越混乱,直到崩溃。所以我们要用解耦来对抗变化和复杂性。
三、解耦的指导思想
把一件复杂的任务拆成若干个相对简单且独立的子任务,理想状态是子任务之间没有相互影响。
就好比生产一部手机,有的企业专门造屏幕,有的企业专门造芯片,有的企业专门造操作系统,本来生产手机这件很复杂的事情被拆分成了若干个子任务,大家都不需要知道造手机的全部环节却最后把手机造出来了。
四、解耦的方法1-识别并区分业务功能和规则
需求分析过程中,要分清楚哪些是业务功能,哪些是业务规则,并有意将他们分开阐述。
举个例子要设计一个需求:线上商城卖苹果8块钱1斤,但是成为会员可以6块钱1斤。我们拆分成:业务功能是卖东西,业务规则是**商品对**人**价。
如果不拆分,我们直接按照需求原样实现出来,那就只能卖苹果,假如明天又要卖梨,那我们做出来的功能就要整体推翻再改;
如果拆分,即便是明天卖梨,那业务功能这个模块逻辑还是卖东西没有变化,只需要变化业务规则模块的逻辑即可。相当于只改变了其中一个子任务的逻辑,另外一个子任务不受影响。
最后,识别并区分业务功能和规则也可以理解成区分稳态(不变)和敏态(经常变动)逻辑。理解方式不同而已。