全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某支付系统中,订单结算类 CheckoutService 的 pay() 方法内直接持有具体支付渠道类 AlipayClient 的引用并调用其方法。若要依据依赖倒置原则重构该设计,正确的做法是:A. 让 CheckoutService 改为依赖 AlipayClient 的父类并继续直接 new 具体子类 B. 抽象出支付渠道接口 PaymentChannel,让 AlipayClient 实现该接口,CheckoutService 仅依赖该接口 C. 在 CheckoutService 中增加 if-else 分支以支持更多具体支付渠道类 D. 将 pay() 方法从 CheckoutService 移入 AlipayClient 中以消除依赖
登录后查看答案
某文档管理系统中,类 DocProxy 与真实文档类实现同一接口 IDocument。DocProxy 的 open() 方法先记录访问日志并校验当前用户角色,再委托给真实文档对象;且仅当真实文档对象尚未创建时才实例化它。从代理模式分类看,DocProxy 同时体现了哪两类代理? A. 远程代理与写时复制代理 B. 保护代理与虚拟代理 C. 智能引用代理与远程代理 D. 缓存代理与防火墙代理
某文档平台有两种封装:甲提供单一的“发布文档”入口,调用时依次协调格式转换、存储和签名子系统;乙与远程档案对象实现相同接口,客户端通过乙访问档案,乙负责拦截请求并在首次调用时创建远程档案对象。下列判断哪项正确? A. 甲是代理,乙是外观 B. 甲、乙都是外观 C. 甲是外观,乙是代理 D. 甲、乙都是代理
某客户端通过本地对象访问另一台服务器上的服务;本地对象实现与服务对象相同的接口,并将调用转发到服务器。该对象属于哪种代理? A. 虚拟代理 B. 保护代理 C. 远程代理 D. 智能引用代理
下列关于桥接模式结构与优点的叙述中,正确的是哪一项? A. 桥接模式要求抽象部分与实现部分一一对应继承,扩展时必须同时修改两侧 B. 桥接模式通过组合关系连接抽象与实现两个独立维度,使二者可独立变化、独立扩展 C. 桥接模式将抽象类与其具体实现类合并为一个类,以减少系统中类的数量 D. 桥接模式的主要优点是隐藏实现细节,使客户端无法调用实现部分的任何方法
某日志分析工具中,分析策略与数据读取后端都需要独立扩展。设计要求策略抽象持有后端接口引用,策略细化类通过该引用调用后端功能。对这一结构及其主要优点的概括,哪项正确? A. 抽象与实现通过继承形成固定配对,新增功能时只扩展配对子类 B. 抽象与实现通过组合关联,可分别扩展并减少两者耦合 C. 实现部分持有抽象部分的引用,二者仍须同步扩展 D. 抽象部分直接创建具体后端对象,以集中管理实现变化
某报表生成方案中,甲只规定“设定页眉、加入数据区、生成摘要”的构建步骤接口;乙实现这些步骤并形成报表;丙按指定顺序调用乙的步骤;最终生成的报表由丁表示。甲、乙、丙、丁依次对应建造者模式中的哪些角色? A. 抽象建造者、具体建造者、指挥者、产品 B. 具体建造者、抽象建造者、指挥者、产品 C. 抽象建造者、指挥者、具体建造者、产品 D. 抽象建造者、具体建造者、产品、指挥者
某生物信息平台需生成分析任务配置,包含数据源、过滤规则、算法参数和报告布局。各部分需按统一流程逐步装配,但研究人员可按不同项目自由组合配置;平台还要便于新增不同配置方案。现有需求中,哪一项最能体现适合采用建造者模式的场景? A. 根据输入类型选择并创建一种数据解析器 B. 按统一步骤组装结构复杂且配置多变的分析任务对象 C. 从固定配置文件中读取一个简单参数对象 D. 复制已有任务对象并修改其中一个字段
在外观模式(Facade)中,客户端希望简化对多个子系统类的调用。该模式里,负责封装这些子系统的调用过程、并向客户端提供统一高层接口的角色是( ) A. 门面角色(Facade) B. 子系统角色(Subsystem) C. 客户角色(Client) D. 抽象工厂角色(Abstract Factory)
某文档系统有两项需求:甲,运行时按需给单个文档对象叠加加水印、加密等功能,且调用者仍使用原有文档接口;乙,按目录层级组织目录与文档,并让调用者以统一方式处理单个文档或整棵目录。下列对装饰模式与组合模式的比较,哪项正确? A. 甲适合组合模式,因为功能可叠加;乙适合装饰模式,因为目录可嵌套 B. 甲适合装饰模式,乙适合组合模式;前者侧重动态扩展对象功能,后者侧重树形部分—整体结构及统一处理 C. 甲、乙都适合装饰模式,因为两者都需要保持调用接口一致 D. 甲、乙都适合组合模式,因为两者都可能由多个对象构成
某监控平台需支持多种告警视图(摘要、审计)和多种传输通道(短信、语音),且两类功能可能分别增加。为避免为每种组合建立专用子类,哪种设计最符合桥接模式的结构与优点? A. 让每种告警视图继承一个传输通道类,并在子类中固定调用该通道 B. 将告警视图作为抽象层、传输通道作为实现层,视图持有通道接口引用,使两层可独立扩展 C. 将所有视图与通道的行为集中在一个类中,通过条件分支选择具体组合 D. 让传输通道继承告警视图,并由通道子类直接定义各类视图的展示行为
下列关于装饰器模式与组合模式的比较,正确的是: A. 装饰器模式用于构建树形部分—整体层次结构,组合模式用于动态给对象添加职责 B. 两者都通过聚合一个同类对象引用来工作,但装饰器只为一个对象扩展功能且保持接口不变,组合模式则让叶子与容器具有统一接口以形成树形结构 C. 装饰器模式要求客户端区分叶子和容器节点分别处理,组合模式则要求装饰类继承被装饰类 D. 装饰器模式只能静态地在编译期确定对象功能,组合模式可以运行时动态改变功能
某科研平台要生成可定制的实验流程方案,每份方案由设备清单、采样步骤、质控规则和输出模板等部分组成;不同方案的组成步骤基本相同,但各部分配置差异明显,且构建过程较复杂。以下哪种需求最能说明该平台适合采用建造者模式? A. 根据输入的文件扩展名,直接选择一种已有的文件解析器 B. 将复杂方案的分步构建过程与最终方案表示分离,以便按不同配置逐步生成方案 C. 从已有方案复制一份对象,再修改其中一个采样参数 D. 按输入的设备类型,在若干现成设备对象中选择一个返回
某智能家居系统采用建造者模式配置不同型号的网关设备,代码中已有抽象建造者 GatewayBuilder 及具体建造者。若将指挥者类 Director 从结构中移除,客户端将不得不自行决定并编排各构建步骤的调用顺序,导致构建流程逻辑分散在多处客户端代码中。由此说明,指挥者类在建造者模式中的主要作用是( ) A. 负责创建具体建造者对象,决定使用哪种具体建造者 B. 封装并编排复杂对象的构建流程,按既定顺序调用建造者的各构建步骤,使客户端与构建过程解耦 C. 直接负责产品对象的组装细节,并取代具体建造者完成每个部件的构建 D. 为产品对象对外提供统一的访问接口,隔离产品内部的数据表示
在简单工厂模式中,所有具体产品的创建逻辑通常集中在一个工厂类里。若系统需要新增一种具体产品,按照该模式的典型实现,通常必须修改的角色是: A. 抽象产品 B. 具体产品 C. 简单工厂类 D. 客户端
关于单例模式的懒汉式与饿汉式实现,下列说法正确的是:A. 懒汉式在程序启动时就创建实例,饿汉式在首次调用时才创建 B. 饿汉式在程序启动(类加载)时就创建实例,懒汉式在首次调用 getInstance() 时才创建 C. 两者都必须在程序启动时创建实例 D. 两者都必须在首次调用时才创建实例
某系统的设备接口包含打印、扫描、传真三个方法。普通打印机只支持打印;归档终端需要打印和扫描;传真终端需要打印和传真。为遵循接口隔离原则,以下哪种设计最合适? A. 拆分为打印、扫描、传真接口,各客户端仅依赖自身需要的接口 B. 保留原接口,不支持的操作由设备实现为空方法 C. 拆分设备实现类,但所有客户端仍依赖包含三个方法的原接口 D. 为每种具体设备定义接口,每个接口都保留三个方法
某智能温室平台需描述“园艺师设定灌溉计划”功能,并记录一次操作中园艺师先提交计划、平台再返回校验结果的交互顺序。下列对两类UML图的理解正确的是哪一项? A. 用例图以园艺师等外部参与者及其目标功能表达需求;时序图以生命线和消息表达交互,消息先后沿时间向下排列 B. 用例图以消息先后表达园艺师与平台的交互;时序图以外部参与者及其目标功能表达需求 C. 用例图中的园艺师必须画在平台系统边界内;时序图中消息先后沿时间向上排列 D. 用例图用于描述对象消息的时间顺序;时序图用于概括平台提供的全部功能
下列关于里氏替换原则(LSP)的说法,正确的是哪一项? A. 子类必须重写父类的所有方法,否则违反里氏替换原则 B. 所有引用父类的地方必须能透明地替换为其子类对象,且程序行为不产生错误 C. 子类可以缩小父类方法的访问权限,以加强封装性 D. 父类对象在任何情况下都必须能替换为子类对象才能符合该原则
下列关于GoF及其著作历史作用的理解中,不正确的一项是: A. GoF模式思想强调复用已被验证的设计经验,而非每次都从零开始设计 B. GoF著作的核心贡献之一是将面向对象设计经验系统化、术语化,便于设计师交流 C. GoF著作出版后,其归纳的模式成为面向对象软件设计领域广泛引用的经典参考 D. GoF著作的出版意味着此前的面向对象设计经验完全失效,必须全部按书中模式重新设计