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