题库系统集成项目管理工程师

系统集成项目管理工程师 · 第三版 · 第5章 软件工程

只需查询却被迫依赖删除接口,应该采用哪项设计原则?

12 道章节练习题
单选题5.3 软件设计11 / 12

只读报表客户端只需查询订单,却必须依赖同时包含查询、删除和批量改价的总接口。团队按客户端需要拆出查询接口,原实现仍可同时实现多个接口。最直接体现的原则是()。

选择答案
未作答
答案与解析

正确答案 A

问题出在客户端不得不依赖自己不需要的操作。按需要提供专门接口,符合接口隔离原则,选A。实现类可以同时实现这些接口,不必为了拆接口复制业务实现。

这里要改的是依赖边界,不是报表的权限。即使运行时已经禁止报表删除订单,编译或契约层面依赖那个总接口的问题仍可能存在;反过来,拆出查询接口也不能代替服务端权限校验。专门接口应围绕使用者的实际需要组织,并不是越碎越好,更不是机械地把每个方法都拆成一个接口。题干特意保留同一个实现类可以实现多个接口这一条件,是为了说明接口隔离不等于实现必须分裂或数据必须复制。

选项分析

A
客户端只依赖所需查询能力,按用途形成专门接口,直接回应了接口隔离关注的问题。
B
依赖倒置强调依赖抽象而非具体实现;题干原本已依赖接口,突出问题是接口包含不需要的能力。
C
单职原则关注一个类引起变化的原因;本题没有拆分实现类职责,而是按客户端需要分离接口。
D
组合重用强调优先通过组合而非继承复用能力;题干没有比较这两种复用方式。

容易混淆的地方

把“接口中有删除方法”只理解为权限配置问题,忘记接口隔离关注代码或契约层面的依赖。

再巩固一步

  • 判断拆接口是否合理时,问使用者需要哪些能力、是否还被迫依赖无关能力;鉴权要另行保证。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.3.2 · 纸书第216页

练习小结

题目纠错

未发送。正式接收渠道尚未接通。

查看纠错信息