所谓的“边界”是指外来代码(三方程序包、开放源代码、其他团队打造的组件和子系统)和自己写的代码之间进行整合的连接区域
1.使用第三方代码
以Map为例
比如应用程序可能构造一个map对象并传递它。我们的初衷可能是map对象的所有接收者都不要删除映射图中的任何东西。但map正好有一个clear方法
Map<Sensor> sensors = new HashMap<Sensor>();
Sensor s = sensors.get(sensorId)
Map 提供了超出/所愿的功能的问题
在系统中不收限制的传递Map的实体,意味着当Map的接口被修改的时,有许多地方都要跟着改。
使用Map更整洁的方式大致如下。Sensors的用户不关心是否用了泛型,那将是实现细节才关心的
public class Sensor {
private Map sensors = new HashMap();
public Sensor