全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某原型对象 P 含有可变列表 items,列表元素也是可变对象。克隆得到 C 后,向 C.items 添加元素不会改变 P.items 的长度;修改 C.items 中原有元素的属性,却会改变 P 中对应元素的属性。由此可知,克隆时列表容器被复制为新对象,但列表元素仍与 P 共用;这种复制方式是____。
登录后查看答案
Java 中,二维数组 matrix 调用 clone() 得到副本 copy。由于 clone() 只复制外层数组,通过 copy[0][0] 修改元素也会影响 matrix[0][0],这是因为两者____。
某音频应用的创建需求如下:甲,根据配置项选择并创建不同类型的音效器,类型集合固定且允许集中修改创建逻辑;乙,系统仅创建一种音频解码器,新增解码器类型时希望扩展对应创建者而不修改已有创建逻辑;丙,需创建相互配套的音频解码器与音效器,并支持新增一整套兼容产品。甲、乙、丙依次最适合采用____、____、____。
某发布系统中,客户端仅调用 ReleaseCoordinator 的 publish();该方法依次调用配置校验器、制品打包器和仓库登记器的接口,而这三个组件彼此独立、客户端也不直接调用它们。若按外观模式辨析角色,ReleaseCoordinator 扮演的角色是____。
某科研平台的客户端原先需要分别调用样本读取、指标计算和结果整理等子系统接口。改造后,客户端只向一个对象发送“生成分析摘要”请求,由该对象统一提供高层接口并封装对子系统的调用。这个对象在外观模式中承担的角色是____。
某报表系统需要同时支持多种数据源和多种导出格式。若通过继承来扩展会导致类数量急剧膨胀,因此系统将报表抽象与数据源实现分离,使二者可以各自独立地变化,这属于____模式;而若系统已有旧数据源接口与新版报表接口不兼容,需用包装对象把旧接口转换为新版接口,则属于____模式。
某设备库中的 final 类 RawGauge 只能提供 int readCentimeters(),返回非负整数厘米数;客户端依赖接口 DistanceSource 的 double readMeters()。不能修改 RawGauge,适配器通过保存一个 RawGauge 实例来完成转换。请填:该适配器属于____适配器;readMeters() 的返回表达式为____。
某城市应急指挥系统要生成可部署的演练场景对象,包含地形层、事件序列、通信规则和评估指标。每个场景都需逐项组装这些部分;组装步骤保持一致,但不同演练要得到结构与配置差异明显的场景。若工厂一次调用直接返回完整对象不便于控制各部分的组装,应优先采用____模式。
策略模式将一组可互换的算法分别封装为具体策略,并由共同的接口约束其结构;该共同接口对应的角色称为____。
在结构型模式中,装饰器模式通过____(填“包装/聚合单个同类对象并动态添加职责”或“聚合多个子节点形成树形部分—整体结构”)的方式扩展对象功能,而组合模式则用于表示树形的部分—整体层次结构;两者实现的关键区别在于:装饰器模式中的装饰类持有的是____(填“一个”或“多个”)被装饰对象的引用,而组合模式中的容器构件持有的是多个子构件的集合。
某系统需同时解决两个问题:①旧类Legacy中的execute(int)方法需被统一目标接口Target.run(int)调用;②抽象Message类与多种编码实现(如UTF8、GBK)分属两个独立维度,且两端都需独立扩展。设计师对问题①采用了包装对象,在run(int)内部转调execute(int),对问题②采用了在抽象中持有实现引用的组合方式。则问题①采用的是____模式,问题②采用的是____模式;这两种模式在意图上的根本区别是:前者用于转换已有接口以____________,后者用于分离抽象与实现以____________。
某设备控制系统中,方案甲封装厂商旧接口,使其符合现有控制接口;方案乙让控制抽象与多种设备实现能够独立扩展。方案甲与方案乙分别体现____模式与____模式。
某报表服务有两项需求:需求甲根据传入的格式标识创建对应的报表产品,调用者不关心具体产品类;需求乙按固定顺序完成取数、筛选和排版,但可生成结构不同的报表。若需求甲采用工厂模式,需求乙应采用____,因为两者分别侧重按条件创建产品与封装复杂对象的分步骤构建过程。
某进程启动后暂不调用单例访问方法。实现甲在类初始化时就创建实例;实现乙仅在访问方法首次被调用时才创建实例。若程序始终未调用访问方法,甲的实例已存在而乙的实例尚未创建。按实例创建时机,甲属于___式,乙属于___式。
在原型模式中,已有一个提供克隆方法的原型对象 reportPrototype。若要通过该对象创建一个克隆对象,调用表达式应填写为____。
在校园预约系统中,客户端将“自习室”或“讨论室”类型交给统一创建入口,由一个类集中判断类型并实例化对应预约对象。该类在简单工厂模式中称为___。
在某UML类图中,Messenger 类的某个方法签名中出现了 Transporter 类型的参数,方法体内将该参数作为局部变量使用,二者之间除此之外没有任何结构上的长久联系。按照UML的建模惯例,Messenger 与 Transporter 之间应表示为____(填写关系名称),其图形表示为一条带____(填写:实线或虚线)箭头的连线,箭头从 Messenger 端指向 Transporter 端。
某高校科研设备预约系统要求预约记录与设备占用状态在同一事务中提交,预约成功通知可异步发送且不能因服务进程重启而丢失。架构设计中,可在该事务内同时写入预约数据和____,再由后台任务读取并发送通知。
某文档对设计模式给出如下描述:设计模式是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。GoF将23种模式按目的(意图)标准划分为三类:其中5种关注对象如何创建与封装创建过程,7种关注类和对象的组合以形成更大的结构,其余模式关注对象间的职责分配与算法交互。按此描述,第一类模式称为____型模式,第二类称为____型模式,第三类共有____种模式。
1994年出版的《设计模式:可复用面向对象软件的基础》一书的四位作者被业界合称为____,他们对软件工程的重要作用在于整理并总结了面向对象设计经验,归纳出23种可复用的经典解决方案,为后续软件设计提供了共同语言与参考标准。