第三方API
在开发中,我们经常要使用第三方API提供的能力,第三方要求广度(普适性),而我们往往只用来满足一些特定的需求(集中性)。
假设以 Map 举例为第三方API,Map有着广阔的接口和丰富的功能:
这种灵活性很有用,但也要付出代价。比如,应用程序可能构造一个Map对象并传递它。
假设有一个需求,不能 清除map 也就是不能调用 clear。但是如果直接传递 Map, 任何接收者都有权限调用 clear。
private static void todo1(Map<String, PartBean> map) {map.clear();}
解决:指定边界
class PartMap {Map<String, PartBean> map = new HashMap();public PartBean getById(String id) {return map.get(id);}public void setMap(Map<String, PartBean> map) {this.map = map;}}

PartMap 限制了 Map 接口能力,使它处于可控状态,另外好处是当 Map 接口变更时,修改起来比较方便。
