《JAVA與模式》這本書,一年前就買了,但說真的,當時真的是只看得懂字,看不明白道理!
所以當有空時我就又拿出來翻翻,這次對于第3章的軟件可維護性與可復用性,特別有感觸!
我也不想拋很多技術名詞出來(開-閉 原則之類的),親身經歷告訴我,如果看的人不是自己明白其中的道理,那他看多了這種名詞,就習慣的把他當口頭語來用了,已經明白的人,自然有比我更高的認識。
所以我選擇一種比較“俗”的方式,說出我的體會。(因為我就是一俗人)
還是回到接口上來吧,什么時候接口才能起作用?當你需要處理將來不斷變化的需要時!
有這么一個場景:
某導演要拍個大片,然后開會時他對助手說出要找女一號,并對女一號要求如下:
1。全國知名女性;
2。有絕世容貌;
3。身材一流;
好了先說這3個吧。
助手根據要求去找來 某某女明星A,但助手知道,導演老人家不會一看就看中的,所以準備聯系了女明星B,女明星C.
果然,導演開始覺得女明星A還不錯,但是沒過2天,覺得要換,(演藝圈的事誰說得清呢),這時助手馬上有B,C來代替!
助手的工作應變十分的好,導演大大的有賞!
現在我們來簡單分析下:
把導演對女明星的要求作為接口的定義。
該接口是三個特征的集合:
1。全國知名女性;
2。有絕市容貌;
3。身材一流;
導演只是根據符合這3個特征要人,而助手根據這3個特征去找人,顯然女明星 A,B,C 必須同時符合這3個特征,(也就是實現了這個接口)
導演在不滿意 女明星 A 后,能迅速找到 B ,C 做替換,助手自然是功不可沒,但根本原因,是因為導演的要求是放在 特征的集合 上.
試想如果導演當初是指名到姓的要誰誰做女一號,然后找來又不滿意了,要求這么具體,助手哪能那么快找來其他人代替?
下面開始要拋點名詞了,我把這里導演的先見之明叫做 “依賴抽象”!
public interface 女一號{
public void 全國知明女性();
public void 有絕世容貌();
public void 身材一流();
}
public class 女明星A implements 女一號{
public void 全國知明女性(){
張某某;
}
public void 有絕世容貌(){
貌似天仙;
}
public void 身材一流(){
三圍(75c,38,80)
}
public class 女明星B implements 女一號{
public void 全國知明女性(){
某某姐姐;
}
public void 有絕世容貌(){
嚇死路邊一頭牛;
}
public void 身材一流(){
三圍(80d,45,95);
}
public class 女明星C implements 女一號{
public void 全國知明女性(){
某某神仙;
}
public void 有絕世容貌(){
人見人愛;
}
public void 身材一流(){
三圍(70c,35,80);
}
}
posted on 2007-05-01 12:17
我們走在JAVA的光明大道上 閱讀(538)
評論(2) 編輯 收藏 所屬分類:
接口的藝術