我喜欢封装一些共用的东西,并且在封装时,总喜欢将其封装成一个功能强大的、可扩展的东西;但对于我封装的东西,经常会有同事不理解:为什么要这样实现,为什么要用这种不常用的方式实现等等!(有些人把这种不理解解释为代码风格的不一样所至,其实是:编辑思想的成熟度不一致!)我的回答通常可总结为以下几点:
更多编辑思想,请见《编程思想》
一、封装的原则
- 低耦合;
- 可用性(方便使用);
- 可读性(使用方法容易理解)
- 可配置性;
- 可扩展性;
二、开发框架的原则
- 可用性(方便使用);
- 可读性(使用方法容易理解)
- 可配置性;
- 可扩展性;
- 高效性;
三、库 和 框架的区别
- 库是一类东西的集合,框架是一个功能的解决方案;
- 开发库更侧重于封装,开发框架更侧重于架构;
- 框架及其各个的模块之间一般都有定义好的流程、生命周期 和 使用规则;库的各个模块之间的依赖性较弱,一般不相互依赖;
四、封装工作的步骤
通过对自己在封装时候的思想活动进行反省,我发现并总结出了 封装的一般步骤,如下:
为了方便描述,下文将被封装的对象统称为 库
- 功能、特性界定:从需求、应用场景、针对问题等方面 来 确定库的功能、特性、职责;
- 使用方式设计:从 使用者的角度 遵循 库的封装原则 来设计库的使用方式;
- 接口设计:根据 使用方式 来设计库的接口;
- 实现方案设计:探索实现方案,并选择最优的实现方案;
- 模块设计:结合 功能、特性、接口、实现方案 来设计 库的模块结构和职责;
- 实现:代码实现;
网友评论