简洁代码--边界

代码整洁之道笔记

[TOC]

边界

即自己的代码和第三方的代码的接口适配

使用第三方代码 ①封装

  • 接口提供者和使用者间的区别:
    接口提供者追求普适性,能在多个工作环境中工作而吸引用户。
    接口使用者追求满足自己的特定需求。

如对于Map使用的不同方式:

一:
Map sensor = new HashMap();
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实体。
代码二将接口隐藏,避免了误用。

浏览和学习边界

编写测试来理解和学习第三方代码

  • 测试确保代码能够按照预期的运行
  • 当第三放代码发布新版本时,可以通过运行测试来确保程序的行为仍旧达到预期
  • 边界测试总能减轻代码迁移的压力

使用尚不存在的代码 ②适配器模式

开发中可能遇到需要调用另一个模块的接口,可是该模块尚未发布。

  • 从距离未知代码最远处进行开发,逐步了解到自己需要的是什么样的接口。
  • 为了不受阻碍,定义自己使用的接口。 这就是我们希望在未知代码处使用的接口。
  • 当别人的代码发布时,需要改动的是自己定义的接口和对方的接口间增加(修改)适配器。

整洁的边界

对于边界上的代码 需要进行清晰的分割和定义了期望的测试。

  • 避免自己的代码过多地了解第三方的特定信息。 依靠不可靠的他人代码不如依靠自己。
  • 对于引用第三方的接口,可以使用适配器的模式,也可以通过封装,从而减少修改时的改动。

你可能感兴趣的:(简洁代码--边界)