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