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