加载中...
接口隔离原则是面向对象设计原则之一,由罗伯特·马丁提出。它主张不应强迫客户端依赖它们用不到的接口方法,应把庞大臃肿的接口拆分为多个更小、更专一的接口,让实现者只需关注与自身相关的部分。

| 中文名 | 接口隔离原则 |
| 外文名 | Interface Segregation Principle |
| 提出者 | 罗伯特·马丁 |
| 所属 | 面向对象设计原则 |
| 核心 | 接口精简专一 |
接口隔离原则是面向对象设计原则中的一条,由软件工程师罗伯特·马丁(Robert C. Martin)提出。其核心表述是:客户端不应被强迫依赖于它们并不使用的接口方法。换言之,接口应当保持精简与专一。
当一个接口包含过多方法时,实现该接口的类往往被迫为一些自身根本用不到的方法提供空实现或抛出异常,这不仅冗余,还会在接口变动时波及无关的实现类。接口隔离原则主张把这种大而全的胖接口,拆解为若干个内聚的小接口,让每个使用方只依赖它真正需要的那一组方法。
典型反例是一个包含打印、扫描、传真等所有方法的多功能设备接口。若某台设备只能打印,却被迫实现扫描与传真方法,便违反了该原则。按照接口隔离,应拆分为打印接口、扫描接口、传真接口,让每台设备按能力自由选择实现。它在插件系统、服务契约设计以及大型协作项目中尤为重要。
问:接口隔离原则和单一职责原则有何区别?答:单一职责关注类的职责划分,接口隔离关注接口的粒度划分。二者都追求内聚,但接口隔离特别强调从使用者角度避免多余依赖。
问:接口拆得越小越好吗?答:并非绝对。过度拆分会导致接口碎片化,增加维护与组合成本。应以是否服务于同一使用角色为界,保持恰当的粒度。

| 中文名 | 接口隔离原则 |
| 外文名 | Interface Segregation Principle |
| 提出者 | 罗伯特·马丁 |
| 所属 | 面向对象设计原则 |
| 核心 | 接口精简专一 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧