问题
为什么要封装?
原因
- 计算机史上的万能解决方案:如果原有层面解决不了的问题,那么就请再加一层
- 通过封装,保证入口统一,所有的操作都在一个地方进行管理,一目了然,即使有什么改动也只需要在一个地方修改
- 例如可以很方便的切换各种图片加载库和网络加载库等等
解决方案
- 提供公共访问接口,使用单例模式封装(如果被封装的库已经使用单例,则不需要),减少资源消耗
- 通过策略模式,实现不同策略的切换(每种库即是一种策略)
- 如果创建的对象比较复杂,可以使用建造者模式,将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以构建不同的对象
- 目标:外部表现一致,内部灵活处理
- 实例分享(待补):如何配合设计模式封装基于项目需求的图片加载库
更新:Android图片加载库的封装实战之路