軟件開發:類與角色
黃國強 2004年09月16日
我們往往從角色的角度考慮給一個類劃分出多個接口。這樣就能達到接口隔離的效果。一般基類的命名都是CXXXBase之類,但角色卻不是這樣命名。他往往應該從客戶的角度來考慮命名,如果客戶類的CClient,則用CClientServer作爲接口名就是一個很好的選擇。一個類就從以上多個角色接口類中繼承。有的同事可能不太理解類與角色的關係。我一直認爲好的例子可以使人最快的理解。下面舉一個例子。
一個三口之家。其中男主人我們把他作爲一個“男人類”。
對於妻子來說,其應該具有“丈夫的接口”,對於孩子來說,其應該具有“父親的接口”。作爲一個“男人類”顯然應該實現“丈夫的接口”和“父親的接口”。對於妻子和孩子,“男人類”應提供不同的功能,這才正常。混淆起來顯然有問題。