先前开发了一个C++的画板库,将其封装后提供给各移动平台使用。原来的设计以下图所示。封装的库中只含有C++代码,这样能保证该库能够被各个平台使用。可这种封装暴露的内部元素太多,须要在应用层引入HYBrushCore
,CanvasView
以及PaintingManager
等中间层代码才能让库被方便实用。函数
中间层各种设计
HYBrushCore
:管理内核库中各C++组件,为应用层提供更换笔触/调整颜色/调整大小等功能;CanvasView
: 继承于平台相关的视图,接收交互手势,并调用内核库函数进行绘制;PaintingManager
: 管理绘画做品,提供存储/加载/删除做品等功能;新的封装直接将中间层代码封装到库内,这样虽然针对不一样的平台须要封装不一样的库,但暴露给应用层的接口简单了,方便使用。 为了统一接口,将PaintingManager
的功能拆分到了应用层和内核中:code
HYBrushCore
,放进内核中;