SuperAPI AI 工具集

interface-segregation-principle

编程与开发

查看项目

更新于 10-16 03:36

技能介绍

用途:在设计与实现接口时遵循接口隔离原则(Interface Segregation Principle, ISP)——客户端不应被迫依赖其不使用的方法。

主要判断与能力:

  • 识别“throw/no-op 坏味道”:若实现类必须为接口方法抛异常或写空实现,说明接口过胖。
  • 拆分策略:把胖接口拆成聚焦的能力接口,只实现自身支持的接口;需要全部能力时用交叉类型组合,如 type MultiFunctionDevice = Printer & Scanner & Fax。
  • 常见拆分:Repository<T> 拆为 Readable<T>、Writable<T>;MultiFunctionDevice 拆为 Printer、Scanner、Fax;FileSystem 拆为 FileReader、FileWriter、FileDeleter;UserService 拆为 UserReader、UserWriter、UserAuth。
  • 规模建议:理想 1-3 个方法,4-5 个且高内聚可接受,6+ 个考虑拆分;问“所有实现者是否都需要全部方法”,否则拆分。
  • 红线:不用 throw、空实现、supportsX() 能力检查或文档标注“不支持”来绕过,编译期类型检查优于运行时错误;不提供“违规写法+正确写法”两种方案。

适用场景:设计新接口、实现含无用方法的接口、被迫实现不适用方法、接口方法过多、不同实现者只用方法子集时。

限制:资料未提供安装命令、编程语言绑定、价格或平台信息,暂未提供。