接口,關係着抽象與實現。在應用層中,接口通常被引用或者說是調用,是抽象層的
邏輯對象,在應用層中,實現是不必實現的--也就是說,我們沒必要向客戶交代我們
是怎樣去實現的。我們提供的只要符合客戶的需要就可以了。下面是我的一下思考:
1、等號的兩端。
面向對象設計,重要的一個特點是多態。一個引用,可以引用多種態的對象,而這些
對象只要符合引用的類型(type:類或者接口)。所以說,等號的左邊是抽象概念,
而右邊是具體實現。在調用的時候,左邊的是代號,代表着右邊的實現。
2、大括號內與大括號外:
我們通常定義方法的時候,方法有方法名、返回值、參數,在JAVA中,這三個要素
組成了方法。這三個要素也是經常出現在應用層,是括號外的東西。在這個方法究竟
是要做什麼的也就是括號內的事情了,括號內的內容是它的真實實現,而括號外方法
名也就是在調用層中,實現的代表而已,然而方法名可以說是抽象的。同上,在被調
用的時候,方法名是代號,實現也就是括號內東東了。
3、根據以上兩點我們可以得出。在調用層中,與客戶打交道的是抽象的、可作代號的東
西,如引用、方法名。而具體的實現,我們是可以把它隱藏在這些抽象的、代號的後
面,不必讓客戶知道。所以說,我們要搞好業務邏輯,我們用抽象的、代號的東西來
表示。當我們確定了這些東西后,我們要構建的各種對象的抽象概念也比較容易地確
定下來了。各種對象之間的關係,他們的責任的分配是怎樣也可以容易分清。最後我
們再去關心括號內的事情就好了。這有點像測試驅動開發,先把可以測試的框架建立
起來,然後再把括號內的具體實現做好,邊測試邊開發,到最後寫完代碼,程序也就
差不多了。