假設(shè)我們需要訪問銀行的數(shù)據(jù)庫(kù),并且需要 找到名字與給定名字的一致的客戶,我們可 以
假設(shè)我們需要訪問銀行的數(shù)據(jù)庫(kù),并且需要
找到名字與給定名字的一致的客戶,我們可
以:
?
向數(shù)據(jù)庫(kù)要求所有客戶的集合,然后遍歷這個(gè)集
合來查找名字與給定名字相符的客戶;
?
向數(shù)據(jù)庫(kù)索要所有客戶的集合,然后讓該集合自
己查找給定的客戶;
?
向數(shù)據(jù)庫(kù)提供客戶的姓名,然后讓數(shù)據(jù)庫(kù)進(jìn)行搜
索并查找該客戶。
?
請(qǐng)問,從迪米特法則的角度出發(fā),哪個(gè)方案
更可???
根據(jù)迪米特法則,我們應(yīng)該盡量避免與其他模塊/系統(tǒng)直接交互,并且只與必要的模塊/系統(tǒng)直接交互。因此,最可取的方案是向數(shù)據(jù)庫(kù)提供客戶的姓名,然后讓數(shù)據(jù)庫(kù)進(jìn)行搜索并查找該客戶。這種方式不需要我們?cè)L問整個(gè)客戶集合,也不需要集合自己去查找客戶,只需要提供必要的信息給數(shù)據(jù)庫(kù),讓數(shù)據(jù)庫(kù)完成搜索和查找,降低了模塊之間的耦合。
標(biāo)簽: