軟體程式設計中乙個很大的問題就是如何優雅的處理變化。
我對優雅的理解:最大限度的減少修改所需要的effort
裝飾器的思想:在原有元件的基礎上裝飾一下,讓他形成新的功能。這樣比從頭建立乙個相同功能的元件所花費的effort要小的多
abstract class show
class tv extends show
}//3d彩電誕生了,新建乙個類
class 3dtv extends show
}//高畫質彩電誕生了,新建乙個類
class hdtv extends show
}//如果再來乙個高畫質,3d電視怎麼辦?
class 3dhdtv? 不好,類越來越多,並且這個類和前兩個類有冗餘,乙個好的方法是,在tv上裝飾一下,讓她有hd,3d的功能。
用裝飾器模式類解決:
為裝飾器定義乙個抽象類:
abstract derector extends show
public void display() ;
}class 3dtv extends derector
public void display() ;
}class hdtv extends derector
public void display() ;
}//need a 3d tv?
show tv = new tv();
show 3dtv = new 3dtv(tv);
//need a hd tv?
show hd = new hdtv(tv);
//need a 3dhdtv?
show 3dhd = new hdtv(3dtv);
//少了建立3dhd tv 的effort,如果類很多,節省的effort更多
如何優雅的處理錯誤
1 封裝錯誤error,使其記錄錯誤檔名稱 檔案路徑 行數 操作 錯誤資訊等相關資訊。封裝錯誤型別,myerror 型別記錄了檔案,行號,相關的錯誤資訊 type myerror struct patherror 除了底層錯誤外還提供了使用哪個檔案,執行哪個操作等相關資訊。type patherro...
如何優雅的處理Restful
最近公司搭建的專案,前端反映後端返回格式不統一的問題,因此引發小編的思考,如何能夠優雅的處理返回值格式呢?在度娘中仔細研讀了一番,決定總結一下,於是乎此文便誕生了。首先,大家都會思考為什麼要做統一格式處理呢?現階段的開發模式多以前後端分離形式存在,前後端開發人員需要通過大量 api 來進行資料互動,...
如何優雅處理vue中的條件渲染
說到條件渲染,有些人會脫口而出v if v show,你是否厭倦了if else switch巢狀,是否反感大量出現的 運算子,也許你需要了解一下vue的filters 基本操作如果需要根據情況渲染不同資料,在條件允許的前提下,用filters代替v if 實用過濾器進行模板繫結 div templ...