java接口示例 java接口设计原则
ISP核心是客户端不依赖未使用接口,需嵌入将胖接口拆为小而专的接口,如PowerControllable、Printable等,结合抽象类复用实现逻辑,命名能力引脚,拆分借鉴是调用证明方和使用场景。

Java接口分离原则(接口隔离)原理,ISP)的核心就一句话:客户端不依赖依赖它用不到的接口。不是“能塞就塞”,而是“整合拆分”——把一个大而全的接口,拆成多个小而专的接口,让每个实现类只面对自己真正需要的方法。为什么不能搞“胖接口”
比如定义一个设备接口,里面塞了powerOn()、print()、playAudio()、scanDocument()全部方法。结果打印机类必须实现 playAudio(),音响类又得硬写个空的 print()。这不是复用,是负担。实现类被迫写一次 throw new UnsupportedOperationException() 或空方法 接口语义模糊,看不出哪些方法属于同一职责后续新增功能容易污染原有接口,影响实现类怎么拆才合理
关键看行为属于是否同一上台或使用场景。分割后各接口职责,各自不同。PowerControllable:只含powerOn() / powerOff() Printable:只含print(Document doc) Playable:只含play(AudioClip Clip)一个多功能设备类可以同时实现多个接口,但普通灯几乎无法实现PowerControllable就够了和抽象类怎么配合
接口负责定义“能做什么”,抽象类负责解决“怎么做”的共性问题。
Ghiblio
专业AI吉卜力风格转换平台,将生活照变身吉卜力风格照157查看详情
学习“Java学习笔记(立即深入)”;比如所有带开关的设备都有isPoweredOn状态和基础开关逻辑,可抽到AbstractPowerDevice中具体类继承该抽象类实现应答接口,既享受通用逻辑,又不被摆脱方法绑架避免为了用代码而在接口里加默认方法,把逻辑塞进接口会涉及其契约纯粹性常见误判点
不是“只要方法多拆行为”除外,调用方是否真的混用。比如订单服务中的queryOrder()和cancelOrder()虽然都在一个领域,但如果查询端和操作端完全隔离(接入不同模块、权限不同、配置不同),就值得拆成OrderQueryService和OrderCommandService。拆分替换是“谁在用”和“为什么用”,不是方法数量接口名要体现能力(Searchable、Exportable),而不是角色(AdminService) 避免过度分割:两个方法永远被同一组类一起实现,且分割紧密关联,没必要硬拆
基本上就这些。接口不是越大越好,而是越准越好。拆得对,系统松得开、改得稳才加得快。
以上就是Java接口分离原则是什么_OOP设计原则说明的详细内容,更多请关注乐哥常识网为什么其他相关文章!面向对象三大特性怎么理解?
