先前開發了一個C++的畫板庫,將其封裝後提供給各移動平臺使用。原來的設計以下圖所示。封裝的庫中只含有C++代碼,這樣能保證該庫能夠被各個平臺使用。可這種封裝暴露的內部元素太多,須要在應用層引入HYBrushCore
,CanvasView
以及PaintingManager
等中間層代碼才能讓庫被方便實用。函數
中間層各種設計
HYBrushCore
:管理內核庫中各C++組件,爲應用層提供更換筆觸/調整顏色/調整大小等功能;CanvasView
: 繼承於平臺相關的視圖,接收交互手勢,並調用內核庫函數進行繪製;PaintingManager
: 管理繪畫做品,提供存儲/加載/刪除做品等功能;新的封裝直接將中間層代碼封裝到庫內,這樣雖然針對不一樣的平臺須要封裝不一樣的庫,但暴露給應用層的接口簡單了,方便使用。 爲了統一接口,將PaintingManager
的功能拆分到了應用層和內核中:code
HYBrushCore
,放進內核中;