全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某公众号消息推送系统采用观察者模式设计:读者可关注公众号成为观察者,也可取消关注退出;公众号发布新文章时,会自动向所有当前关注它的读者推送通知。下列关于该设计的说法正确的是( ) A. 公众号发布文章时无需知道每位读者的具体类型,只需遍历通知所有关注者 B. 每位读者必须逐一询问公众号才能得知是否有新文章 C. 公众号必须针对每种不同类型的读者单独修改推送代码 D. 新读者关注后,公众号需要重新编译才能向其推送
登录后查看答案
某科研平台有两项设计:甲模块根据用户实时选择的调度规则对象安排计算任务,规则对象可整体替换;乙模块由抽象基类规定“读取任务清单→校验资源→提交任务”的固定顺序,具体平台子类实现其中的资源校验步骤。下列对两种设计的比较,哪项正确? A. 甲属于模板方法模式,乙属于策略模式;两者都通过子类重写步骤实现算法替换。 B. 甲属于策略模式,乙属于模板方法模式;前者以可替换的算法对象组织变化,后者以继承扩展固定算法骨架。 C. 甲、乙都属于策略模式;只要算法中存在可变化部分,就应将其封装为策略对象。 D. 甲、乙都属于模板方法模式;只要调用端能选择实现,就说明算法骨架由基类控制。
某图表库使用享元模式绘制数据点标记。标记的样式编号是内部状态,数据点的屏幕坐标是外部状态。享元工厂维护一个享元池,getFlyweight(styleId) 方法按样式编号管理共享对象:若池中已有该编号对应的对象则直接返回,否则创建一个新对象并登记到池中,且不淘汰。依次调用:getFlyweight(7) 创建并返回对象 F1;getFlyweight(3) 创建并返回对象 F2;再次调用 getFlyweight(7)。则第三次调用后,池中对象个数和返回对象分别是( ) A. 3 个,新创建的对象 B. 2 个,F1 C. 2 个,F2 D. 1 个,F1
某图像导出程序允许用户切换不同的压缩算法。下列哪项准确描述了该程序采用策略模式时的基本结构? A. 抽象策略声明算法接口,具体策略实现该接口,上下文持有策略引用并委托其执行 B. 抽象策略实现完整算法骨架,具体策略仅覆盖算法中的可变步骤 C. 上下文继承所有具体策略,并通过重写方法选择压缩算法 D. 客户端直接调用各具体策略的内部步骤,上下文负责统一封装算法实现
某演示文稿渲染系统采用享元模式管理字形对象,字形家族为内部状态,字在页面中的位置为外部状态。享元工厂以(字体家族,字号)二元组作为享元池的键:请求的键已存在时直接返回池中对应享元对象,不存在时创建新享元并登记入池,且不淘汰任何对象。池初始为空,请求序列依次为:(黑体,16)、(宋体,12)、(黑体,16)、(楷体,14)、(宋体,14)、(黑体,12)、(楷体,14)。则在全部请求处理完毕后,享元池中共登记了多少个享元对象,其中因命中池中已有对象而未新建的请求次数是多少? A. 登记5个,命中2次 B. 登记6个,命中1次 C. 登记5个,命中3次 D. 登记4个,命中3次
某分析系统定义接口 IReport,客户端持有的 ReportStub 与服务端 ReportService 均实现该接口。调用 ReportStub 的 analyze(data) 时,Stub 将参数编码后发送至远端服务,接收并解码返回结果;它不负责延迟创建本地对象,也不校验用户权限。该 Stub 属于哪种代理? A. 虚拟代理 B. 保护代理 C. 远程代理 D. 智能引用代理
某电商系统中,订单对象在创建时被包装进一个代理:代理持有对真实订单的引用且在构造时立即创建它,代理不校验任何权限、不做远程转发、不缓存结果,仅在下单成功后通过记录每次调用的先后信息实现操作回放以便审计。按代理模式的分类,最能准确刻画该代理用途的类型是:A. 虚拟代理 B. 保护代理 C. 远程代理 D. 智能引用代理
在智能温室系统中,甲对象把温度调节、补光和灌溉子系统封装为一个便于使用的统一入口;乙对象与远程传感器实现相同接口,并在客户端访问时控制对传感器的调用。哪项正确区分了甲、乙的模式意图? A. 甲是外观,意在简化子系统使用;乙是代理,意在控制对对象的访问 B. 甲是代理,意在控制子系统访问;乙是外观,意在简化对象接口 C. 甲、乙都是外观,意在统一客户端入口 D. 甲、乙都是代理,意在控制客户端请求
某科研平台需要支持多种实验记录审核流程(常规审核、复核审核)和多种电子签章服务(校内签章、第三方签章),两类功能均可能独立增加。若以桥接模式设计,哪项结构及优点描述正确? A. 审核流程抽象持有签章实现接口的引用,具体审核流程调用该接口;两侧可独立扩展,避免为每种组合建立子类 B. 签章实现类继承审核流程抽象,新增任一类型时都须在继承层次中同时增加对应组合类 C. 审核流程抽象直接依赖各签章服务的具体类,新增签章服务时只需修改抽象类且不影响已有流程 D. 审核流程抽象与签章实现接口互相继承,使两侧扩展必须同步进行
某智能客服系统中,5 个业务模块两两直接通信以完成跨模块请求处理。某架构师指出这种交互方式耦合度过高,改用中介者模式重构:所有模块不再直接互相通信,而是只与一个中介者对象交互。若以「系统中需要维护的通信连接数」度量耦合度,重构后相比重构前,通信连接数减少了多少条? A. 4 条 B. 5 条 C. 9 条 D. 10 条
某设备采用状态模式,初始状态为待机。状态转换规则为:待机收到“启动”进入运行;运行收到“暂停”进入暂停、收到“停止”进入待机;暂停收到“继续”进入运行、收到“停止”进入待机。若当前状态没有该事件对应的转换,则状态保持不变。依次处理事件“继续、启动、暂停、停止”后,设备处于什么状态? A. 待机 B. 运行 C. 暂停 D. 故障
某原型类 Doc 实现 Cloneable,字段有:String name、int[] data、java.util.List<String> tags。其 clone() 仅调用 super.clone() 实现浅拷贝。现有原型 d0:name=“P”,data={1,2,3},tags=[“a”,“b”]。执行 d1=d0.clone() 后,依次执行:d1.data[0]=9;d1.tags.add(“c”);d0.name=“Q”。问此时 d0.data[0]、d0.tags.size()、d1.name 的值依次是? A. 9、3、P B. 1、3、P C. 9、2、Q D. 1、2、Q
某任务执行器原设计为抽象类 Task,其 run() 依次调用 init()、work()、finish(),其中 work() 为抽象方法,由子类实现;现有两个子类仅 work() 不同。现需新增一种变体,其执行顺序为 init()、finish()、work(),且各步骤的具体实现均与原有子类不同。下列判断正确的是: A. 该新增变体只需新增 Task 子类并重写 run(),这仍严格符合模板方法模式对算法骨架不可变的要求 B. 模板方法模式与策略模式都通过继承来改变算法,因此二者都可自然支持步骤顺序变化 C. 若将两种执行顺序分别封装为不同策略对象的 execute(),由上下文委托执行,则无需依赖父类固定骨架即可支持该变体 D. 策略模式要求所有具体策略具有相同的步骤数量和顺序,因此无法支持该新增变体
某 Observable 已注册一个 Observer,且开始时 changed 状态为 false。依次执行 notifyObservers()、setChanged()、notifyObservers()、notifyObservers()、setChanged()、notifyObservers(),Observer 的 update() 方法共被调用几次? A. 0 次 B. 1 次 C. 2 次 D. 3 次
集合按顺序保存元素甲、乙、丙、丁。为该集合分别创建迭代器 i₁、i₂,二者均从首元素开始;next() 返回当前元素并前进一位,hasNext() 只检查是否还有元素而不前进。依次执行 i₁.hasNext()、i₁.next()、i₁.next()、i₂.next()、i₁.hasNext()、i₂.next()、i₁.next(),按执行顺序记录所有 next() 的返回值,结果是哪一项? A. 甲、乙、甲、乙、丙 B. 甲、乙、乙、丙、丁 C. 甲、乙、甲、乙、丁 D. 甲、乙、甲、丙、丙
某在线排版系统中,同一款按钮的固定边框样式和固定字体字形在所有页面都相同;按钮文字、按钮颜色和页面坐标则可随每次显示而改变,并由调用方传入。按享元模式的状态分类,下列哪项正确? A. 边框样式、字体字形是内部状态;文字、颜色、坐标是外部状态 B. 边框样式、字体字形、颜色是内部状态;文字、坐标是外部状态 C. 文字、颜色是内部状态;边框样式、字体字形、坐标是外部状态 D. 坐标是内部状态;边框样式、字体字形、文字、颜色是外部状态
某地图软件用享元模式绘制树木图标。享元工厂维护一个享元池,getFlyweight(key) 方法以树种名称作为键:若池中已存在该键对应的享元对象,则直接返回池中对象;否则创建新享元对象并存入池中再返回。程序依次调用 getFlyweight("松树")、getFlyweight("柏树")、getFlyweight("松树")、getFlyweight("杨树")、getFlyweight("柏树"),并允许池中对象按需手动移除。问:上述五次调用结束时,享元池中共存有多少个享元对象? A. 5个 B. 3个 C. 2个 D. 1个
某原型类 Node 实现 Cloneable,其成员为 int val 和 int[] next,clone 方法仅调用 super.clone() 返回浅拷贝。执行以下语句: Node a = new Node(); a.val = 5; a.next = new int[]{1, 0}; Node b = a.clone(); b.val = 6; b.next[0] = 2; b.next = new int[]{3, 4}; b.next[0] = 9; 执行完毕后,下列 (a.val, a.next[0], b.next[0]) 的值正确的是? A. (5, 2, 9) B. (5, 1, 9) C. (6, 2, 9) D. (5, 2, 2)
下列关于装饰器模式与组合模式的对比,说法正确的是: A. 装饰器模式适合构建树形部分—整体层次结构,组合模式适合在运行时动态给单个对象叠加职责 B. 两者都要求聚合多个子节点以形成整体,区别仅在于节点数量不同 C. 装饰器模式中装饰类与被装饰类实现同一接口,层层包装后调用者无需感知新增职责;组合模式则通过统一接口让客户端以一致方式处理叶子和容器节点 D. 装饰器模式在编译期固定对象职责且不可撤除,组合模式则只能处理叶子节点而无法递归包含子节点
某文档处理系统当前采用工厂方法模式:抽象产品为 Document,具体产品有 PdfDocument、WordDocument,每个具体产品对应一个具体工厂,新增文档类型只需新增一个工厂类。现产品组提出新需求:系统需支持两套界面皮肤(浅色、深色),每套皮肤下都要提供配套的『文档』与『工具栏』两类产品,且要求同一皮肤下的产品必须成套切换。若为满足新需求对创建逻辑进行改造,下列说法正确的是:A. 继续沿用工厂方法模式,为每个产品各设一个工厂即可保证成套性 B. 应改造为抽象工厂模式,为每套皮肤提供一个具体工厂,创建一族配套产品 C. 应退化为简单工厂,用一个工厂类的静态方法按参数创建所有产品 D. 工厂方法与抽象工厂在此需求下等价,成套性由客户端代码自行保证