代码整洁之道笔记
[TOC]
边界
即自己的代码和第三方的代码的接口适配
使用第三方代码 ①封装
- 接口提供者和使用者间的区别:
接口提供者追求普适性,能在多个工作环境中工作而吸引用户。
接口使用者追求满足自己的特定需求。
如对于Map使用的不同方式:
一:
Map<Sensor> sensor = new HashMap<Sensor>();
Sensor s = sensor.get(sensorId);
二:
public class Sensors {
private Map sensors = new HashMap();
public Sensor getById(String id) {
return (Sensor)sensors.get(id);
}
}
代码一的Map提供了太多的可操作空间,不受限制地传递Map实体。
代码二将接口隐藏,避免了误用。
浏览和学习边界
编写测试来理解和学习第三方代码
- 测试确保代码能够按照预期的运行
- 当第三放代码发布新版本时,可以通过运行测试来确保程序的行为仍旧达到预期
- 边界测试总能减轻代码迁移的压力
使用尚不存在的代码 ②适配器模式
开发中可能遇到需要调用另一个模块的接口,可是该模块尚未发布。
- 从距离未知代码最远处进行开发,逐步了解到自己需要的是什么样的接口。
- 为了不受阻碍,定义自己使用的接口。 这就是我们希望在未知代码处使用的接口。
- 当别人的代码发布时,需要改动的是自己定义的接口和对方的接口间增加(修改)适配器。
整洁的边界
对于边界上的代码 需要进行清晰的分割和定义了期望的测试。
- 避免自己的代码过多地了解第三方的特定信息。 依靠不可靠的他人代码不如依靠自己。
- 对于引用第三方的接口,可以使用适配器的模式,也可以通过封装,从而减少修改时的改动。