Programming to Interface 是OOD的基本原則之一。
但是不等于說只要應用了Interface就符合Programming to Interface的原則。
我對以下使用Interface的情形有不同看法。
為DDO建立一個接口(Interface)。然后當DDO跨層使用時,我們用該接口作為參數類型。
我認為這是沒有意義的,根本實現不了Programming to Interface 的初衷。
1. Programming to Interface 的好處之一是可以為不同的實現提供統一的接口。但是這個案例中,只有一個DDO,對應這一個Interface。
2. Programming to Interface 的好處之二是當實現改變時,interface可以保持不變。這樣Programming to Interface 部分的代碼就可以不用隨實現的改變而改變。但是這個案例中,一旦DDO發生了改變,Interface也需要發生改變。
總之,這這種情形下,增加一個接口純屬多余,沒有增加任何價值,反而增加了維護接口的麻煩。
這也說明正確應用Programming to Interface 是多么重要。否則再漂亮的法則一旦濫用,誤用,不僅沒有任何好處,而且可能造成額外的負擔。
造成這種誤用的關鍵原因是,DDO并非一種理想的Object,getter和setter沒有足夠的抽象程度,不能提煉成接口。勉強用上接口也是徒勞的。