全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某数字档案库采用组合模式表示目录树:根节点 R 下有目录 A、B;A 下有文件 C 和空目录 D;B 下有文件 E。目录对象即使当前没有子节点,仍可继续接收子节点;文件对象不能包含子节点。该树中属于叶子对象的节点是____。
登录后查看答案
某文本渲染组件的 draw() 方法耗时 4ms。现通过装饰模式在不修改原组件的前提下动态扩展功能,已实现两个装饰器:边框装饰器使耗时增加 3ms,阴影装饰器使耗时增加 5ms。程序运行时对同一组件对象先包裹边框装饰器、再包裹阴影装饰器,调用最终对象的 draw() 方法总耗时为 ____ ms;装饰模式允许在____(填"编译时"或"运行时")动态地为对象叠加职责,且各装饰器与被装饰组件实现同一个____(填"接口"或"父类内部方法")。
某在线考试系统需要生成一份复杂试卷对象,试卷包含标题、若干题目、每题分值、考试时长和答案解析,题目数量与题型组合随考试科目变化。生成试卷时必须按固定流程分步完成:先选题,再设置分值,最后统一排版;同一套流程既能生成文科卷,也能生成理科卷,且不暴露试卷内部组装细节。此场景最适合采用____模式。
在订单报表生成系统中,对象由标题、表头、数据块、页脚四个部件按固定顺序组装而成。某同学分别用简单工厂模式与建造者模式实现:前者直接返回一个组装好的完整对象,后者将四个部件的构造步骤分别封装并由指挥者控制装配顺序。若需求变更为:报表部件的构造算法不变,但需支持两种不同的装配顺序(先生成页脚再填数据的加密版、按常规顺序的普通版),则更适宜选用____模式,原因是该模式将____与表示分离,允许同一构建过程产生不同的装配结果,而工厂模式仅关注单个对象的____,无法控制部件的装配顺序。
某科研软件用抽象工厂模式创建一组配套的报告组件:实验室工厂创建“实验室版封面”和“实验室版页脚”,期刊工厂创建“期刊版封面”和“期刊版页脚”。客户端先取得实验室工厂实例并调用其创建封面的方法,随后又取得期刊工厂实例并调用其创建页脚的方法。此时,客户端得到的两个组件 ____。
某数据库连接池类需要全局唯一实例。若采用饿汉式单例,实例在类加载阶段即被初始化,因此天然避免了多线程环境下的____问题;若采用懒汉式单例(仅一个简单的 if 判空后 new),在多线程同时首次调用 getInstance() 时可能创建出多个实例,通常需要用____关键字修饰 getInstance() 来解决,但会带来每次调用加锁的开销。
某物流平台评估候选架构时,采用基于场景的架构评估方法。评估团队选取“新增承运商接口后,其他承运商接入流程不变”作为场景,记录其刺激、环境、响应及响应度量,并请业务与技术利益相关者共同评审。该实践中,场景的主要作用是____。
某系统分步构造含标题、正文、脚注的文档。类X只声明 buildTitle()、buildBody()、buildFootnote() 等步骤接口;类Y实现这些方法,在内部创建并逐步装配 Document,并提供 getDocument() 返回结果;类Z仅持有 X 类型引用,其 construct() 按固定顺序调用上述步骤方法,但不创建 Document。按建造者模式,X、Y、Z 依次对应的角色是 ___、___、___。
某系统需将“旧式计价器”接入“新版计费流程”:前者提供接口 oldQuote(分钟数),后者要求接口 quote(秒数)。设计甲以包装对象将 quote(秒数)转换后调用 oldQuote;设计乙定义计费抽象,并让按分钟计价、按流量计价分别实现该抽象,二者可独立扩展。甲、乙分别体现适配器模式与桥接模式中的哪一种?填:甲是____模式,乙是____模式。
某日志平台需要在保持“日志视图”抽象不变的情况下,灵活切换本地存储与云端存储实现。采用桥接模式时,日志视图与存储实现应分别形成两个独立变化的层次,并通过____关联。
某邮件客户端需构建复杂配置对象,其构建过程分多个步骤(设置服务器、端口、加密方式、签名等),且不同配置方案步骤相同但参数组合各异。若构建过程必须分步进行且需复用同一套构建步骤以产生不同的最终配置对象,则应优先选用建造者模式而非工厂方法模式,因为工厂方法关注的是____的整体实例化,而建造者强调将一个复杂对象的构建与它的____分离,使得同样的构建过程可以创建不同的表示。
某系统需要构建由多个部件组成、配置各异的复杂对象,并希望把对象的构建过程与最终表示分离。此场景适合采用____模式。
某配置对象原型 P 含有 name="A"、limits={max:8}、tags=["x"]。创建浅拷贝 S 和深拷贝 D 后,依次执行:P.limits.max=11,P.tags[0]="y",S.name="B",D.tags[0]="z"。按顺序填写 (S.name,S.limits.max,D.limits.max,P.tags[0],S.tags[0],D.tags[0]):____。
在 Java 中,某服务的单例须在首次调用 getInstance() 时才创建;依靠 JVM 对类初始化的线程安全保证,且外部类加载时不创建实例。采用由嵌套静态类持有实例的方式,这种实现称为____。
某类仅供本进程使用的配置对象,若在首次需要时才创建实例,属于____式;若在程序启动时便创建实例,属于____式。
某日志框架采用工厂方法模式:抽象产品 Logger、抽象工厂 LoggerFactory(声明 createLogger()),客户端仅依赖这两个抽象,现有具体类 ConsoleLogger 与 ConsoleLoggerFactory。现要求新增文件日志功能。按工厂方法模式的 standard 做法,需新增的具体类个数为____个,且为支持该扩展而需要修改的既有类个数为____个,这正是该模式对开闭原则的体现。
某报表系统中,客户端只调用 create("CSV") 获取报表对象,不直接实例化具体报表类;集中判断参数并创建 CSV 报表、PDF 报表等对象的类是 ___。
某自动售货机系统中,顾客与系统交互的顺序为:先发送“投币”消息,系统收到后先执行“验证金额”,验证通过才执行“出货”。在对应的时序图中,消息沿竖直方向自上而下按时间先后排列,则在“验证金额”消息下方紧邻位置的应是____消息;而在用例图中,“顾客”应画在系统边界之____(内/外)。
某校务缴费平台要求:缴费结果与账务记录必须强一致,服务全年可用性优先于极限吞吐量,且上线运维团队规模有限。评审将性能、可用性、一致性的权重分别定为2、3、5,候选方案各项得分(满分5分)依次为:A:分层单体单实例,4、2、5;B:模块化单体双实例配共享事务数据库,3、4、5;C:异步微服务,4、5、2。按“权重×得分”求和,综合得分最高的方案是____。
1994年,四位作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides合著出版了《设计模式:可复用面向对象软件的基础》,他们被业界称为GoF(Gang of Four,四人组)。该书首次系统性地将设计经验归纳为____个可复用的设计模式,并按目的将其分为创建型、结构型和行为型三类,为面向对象软件设计提供了可复用的解决方案。