如何優雅的處理變化 裝飾器

2021-08-31 01:53:28 字數 927 閱讀 9980

軟體程式設計中乙個很大的問題就是如何優雅的處理變化。

我對優雅的理解:最大限度的減少修改所需要的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...