定义
Interface Segregation Principle:
Clients should not be forced to depend upon interfaces that they don’t use.
客户端只依赖于它所需要的接口;它需要什么接口就提供什么接口,把不需要的接口剔除掉。
The dependency of one class to another one should depend on the smallest possible interface.
类间的依赖关系应建立在最小的接口上。
即,接口尽量细化,接口中的方法尽量少
问题由来
类A
通过接口I
依赖类B
,类C
通过接口I
依赖类D
。如果接口I
对于类A
和类B
来说不是最小接口,则类B
和类D
必须去实现他们不需要的方法。