接口隔了原则(ISP)

寻非 2020年01月20日 1,161次浏览

定义:
1.Clients should not be forced to depend upon interfaces that they don't use
客户端不该依赖于其不需要的接口
2.The dependency of one class to another one should depend on the smallest possible interface
类间的依赖应该基于最小的接口上
可以概括为:建立单一接口,不要建立臃肿庞大的接口,也就是接口尽量细化,同时接口中的方法尽量少。避免过渡封装

与单一职责的区别:
单一职责注重的是职责,基于业务逻辑。接口隔离注重的是接口定义,其方法尽量少(如:不要将1千个方法都定义到同一个接口上,哪怕这些方法的功能划分很清晰)

4个使用建议:
1.一个接口只服务于一个子模块或业务逻辑
2.通过业务逻辑压缩publi方法,时常回顾防止冗余
3.已经被“污染”的接口尽量修改,如果代价太高则采用适配器模式进行转换处理
4.基于实际需求和业务环境