天天看點

31 天重構學習筆記29. 去除中間人對象

<b>概念:</b>本文中的”去除中間人對象”是指把 在中間關聯而不起任何其他作用的類移除,讓有關系的兩個類直接進行互動。

<b>正文:</b>有些時候在我們的代碼會存在一些”幽靈類“,設計模式大師Fowler稱它們為“中間人”類,“中間人”類除了調用别的對象之 外不做任何事情,是以“中間人”類沒有存在的必要,我們可以将它們從代碼中删除,進而讓互動的兩個類直接關聯。

如下代碼所示,Consumer 類要得到AccountDataProvider 的資料,但中間介入了 沒起任何作用的 AccountManager 類來 關聯,是以我們應當移除。

<b>總結:</b> ”去除中間人對象“很多時候都會很有作用,尤其是在誤用設計模式的代碼中最容易見到,設計模式中的擴充卡模式和代理模式等都用中間的類是兩者進行關聯,這 是比較合理的,因為中間類做了很多事情,而對于沒有任何作用的中間類應該移除。

本文轉自KnightsWarrior51CTO部落格,原文連結:http://blog.51cto.com/knightswarrior/342487 ,如需轉載請自行聯系原作者

繼續閱讀