单选题5.3 软件设计11 / 12
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第5章 软件工程
只需查询却被迫依赖删除接口,应该采用哪项设计原则?
12 道章节练习题
答案与解析
正确答案 A
问题出在客户端不得不依赖自己不需要的操作。按需要提供专门接口,符合接口隔离原则,选A。实现类可以同时实现这些接口,不必为了拆接口复制业务实现。
这里要改的是依赖边界,不是报表的权限。即使运行时已经禁止报表删除订单,编译或契约层面依赖那个总接口的问题仍可能存在;反过来,拆出查询接口也不能代替服务端权限校验。专门接口应围绕使用者的实际需要组织,并不是越碎越好,更不是机械地把每个方法都拆成一个接口。题干特意保留同一个实现类可以实现多个接口这一条件,是为了说明接口隔离不等于实现必须分裂或数据必须复制。
选项分析
- A
- 客户端只依赖所需查询能力,按用途形成专门接口,直接回应了接口隔离关注的问题。
- B
- 依赖倒置强调依赖抽象而非具体实现;题干原本已依赖接口,突出问题是接口包含不需要的能力。
- C
- 单职原则关注一个类引起变化的原因;本题没有拆分实现类职责,而是按客户端需要分离接口。
- D
- 组合重用强调优先通过组合而非继承复用能力;题干没有比较这两种复用方式。
容易混淆的地方
把“接口中有删除方法”只理解为权限配置问题,忘记接口隔离关注代码或契约层面的依赖。
再巩固一步
- 判断拆接口是否合理时,问使用者需要哪些能力、是否还被迫依赖无关能力;鉴权要另行保证。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.3.2 · 纸书第216页查看完整题目与详解