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