查看更多
当前 - 选择题 - 面向对象设计
简单
单选题
2025年11月第9题
#第二版教材
#必须掌握

某系统的程序目前已经实现了支付宝支付功能。现在需要在不修改原有功能代码的情况下,新增信用卡支付功能。为实现这一要求,应遵循的软件设计原则是(开闭原则)。

问题(1)
浓缩知识点

开闭原则是面向对象六大设计原则的核心之一,其核心思想是软件实体包括类、模块、函数等应当对扩展开放,对修改关闭,也就是说当系统需要新增功能时,应通过扩展新增类、实现抽象接口等方式完成,而非修改已有的稳定代码,这样能最大程度降低代码改动带来的风险,保障原有功能的稳定性,提升系统的可维护性与可扩展性。在实际开发中,常通过定义抽象接口或基类来落地这一原则,比如在支付系统场景中,先定义统一的支付抽象接口,原有支付宝支付类实现该接口,当需要新增信用卡支付功能时,只需新增信用卡支付类实现接口即可,完全无需改动原有支付宝支付的代码。另外要明确,面向接口编程、依赖倒置原则是实现开闭原则的重要手段,而开闭原则是这类手段最终要达成的核心目标;像迪米特法则这类侧重降低对象间耦合的原则,与功能扩展时“不修改旧代码”的核心诉求关联度较低。遵循开闭原则在大型系统的迭代升级中尤为重要,能有效避免因修改旧代码引发的连锁故障,让系统具备更灵活的迭代能力。

正确答案
A

本题考察的是面向对象设计原则(OCP:开闭原则) 的理解与应用。

开闭原则是面向对象设计的六大设计原则之一,这六大原则包括:

  1. 单一职责原则(SRP):一个类只负责一项职责。
  2. 开闭原则(OCP):对扩展开放,对修改关闭。
  3. 里氏替换原则(LSP):子类可以替换父类而不影响系统功能。
  4. 依赖倒置原则(DIP):依赖抽象,不依赖具体实现。
  5. 接口隔离原则(ISP):接口应小而专。
  6. 迪米特法则(LOD):最少知道原则,降低耦合。

开闭原则(Open-Closed Principle) 的核心思想是:软件实体(类、模块、函数等)应当对扩展开放,对修改关闭。
也就是说,当系统需要增加新功能(如新增信用卡支付)时,应通过扩展(新增类、实现接口等)的方式实现,而不修改已有的代码,以保证系统的稳定性和可维护性。在题目中,已有“支付宝支付”功能,如果遵循开闭原则,可以通过定义支付接口(Payment接口),然后在不修改原有代码的情况下,新建一个“信用卡支付类”实现该接口,从而扩展系统功能。

A选项 开闭原则:正确。强调对扩展开放、对修改关闭,完全符合题意。
B选项 迪米特法则(最少知道原则):强调对象之间的低耦合、少依赖,与题目中“扩展功能而不修改代码”无直接关系。
C选项 面向接口原则:强调通过接口编程而不是具体实现编程,是实现开闭原则的一种手段,但题目强调的是“不修改原实现代码而扩展新功能”,更符合开闭原则的核心思想。
D选项 依赖倒置原则:强调高层模块不依赖底层模块,二者都应依赖抽象;与系统扩展相关,但不直接体现“不修改原有代码扩展功能”的要求
所以选择选项 A。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有