一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象保持最小的了解
只與直接的朋友通信。首先來解釋一下什么是直接的朋友:每個(gè)對(duì)象都會(huì)與其他對(duì)象有耦合關(guān)系,只要兩個(gè)對(duì)象之間有耦合關(guān)系,我們就說這兩個(gè)對(duì)象之間是朋友關(guān)系。耦合的方式很多,依賴、關(guān)聯(lián)、組合、聚合等。其中,我們稱出現(xiàn)成員變量、方法參數(shù)、方法返回值中的類為直接的朋友,而出現(xiàn)在局部變量中的類則不是直接的朋友。也就是說,陌生的類最好不要作為局部變量的形式出現(xiàn)在類的內(nèi)部。
這里我們可以用一個(gè)現(xiàn)實(shí)生活中的例子來講解一下。比如我們需要一張CD,我們可能去音像店去問老板有沒有我們需要的那張CD,老板說現(xiàn)在沒有,等有的時(shí)候你們來拿就行了。在這里我們不需要關(guān)心老板是從哪里,怎么獲得的那張CD,我們只和老板(直接朋友)溝通,至于老板從他的朋友那里通過何種條件得到的CD,我們不關(guān)心,我們不和老板的朋友(陌生人)進(jìn)行通信,這個(gè)就是迪米特的一個(gè)應(yīng)用。說白了,就是一種中介的方式。我們通過老板這個(gè)中介來和真正提供CD的人發(fā)生聯(lián)系。