耦合的三种形式
-
不透明耦合,
部件A直接或通过代理B驱动部件C,部件A知道部件C的存在
-
单边透明耦合,
部件A驱动代理B,代理B驱动部件C,部件A不知道部件C的存在,部件C知道部件A的存在
-
双边透明耦合。
部件A驱动代理B,代理B驱动部件C,部件A、C相互不知道对方的存在
此处解释一下“驱动”这个词。
系统运作一定是有一个动力源的,同一时刻A,C两个部件协作,其中一方一定是驱动方,另一方一定是被驱动方。有人可能抬杠说,物理上力是相互的,同一时刻A,C是互为驱动方,被驱动方的。实际上可以将这个时刻分两个方向来观察,如果你站在A的角度,将A看作驱动方,那么C就是被驱动方,你求一个值F1;如果你站在C的角度看,将C看作驱动方,A看作被驱动方,你再求一个值F2。那么F1 + F2 和你用其他方法求出来的结果是一样的。
在上面对耦合的三种形式的描述中,我将部件A看作是驱动方,A是一个逻辑代号,在实际系统中,它可以代表任何实际部件。因此你可以站在任何实际部件的角度思考此部件和被它驱动的部件的耦合形式。
这三种耦合形式分别由低到高代表了两个部件耦合的松散程度。
不透明耦合是耦合程度最紧密的,它要求部件A知道部件C的存在,并直接或通过代理驱动它,部件A是动力源(这和单边透明不同,单边透明驱动部件C的动力源是代理B)。通常来说,不透明耦合预示着部件A和C最多处于职能分离状态,