设计原则之接口隔离原则–如何通过接口隔离职责
接口隔离原则(Interface Segregation Principle) ISP
。这个原则是说客户端不应该依赖他不需要的接口。
这个原则的英文是Clients should not be forced to depend upon interfaces that they do not use
。
如何使用接口隔离原则
这里面的接口不同于我们的API接口,也不是电脑的USB接口这种,而是我们程序中使用的接口Interface
。
我们通过让程序实现不同的接口来完成不同的职责。这个原则和单一职责原则也有点类似。比如一个类既有查询功能还有修改功能。
1 | class demo{ |
那么现在有一个类需要使用这个类的查询功能。它只需要使用查询,但是他还是可以知道这个类有修改功能,可以使用他的修改功能。另外有一个类只需要修改却同样被迫加载了查询功能。
如果我们增加两个接口。
1 |
|
这样的话,我们通过接口将查询和更新分离开,查询方只依赖查询接口,只能感知到查询操作,更新方只依赖更新接口,只能感知到更新操作,不需要知道这个类其他的功能,也防止了误操作。
参考资料:
- 大话设计模式
- 极客时间设计模式之美