全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:某 Java 类 Employee 含字段 String name 和 Address addr(Address 为自定义类)。其 clone() 方法仅调用 super.clone() 返回副本,则 name 属于浅拷贝共享,而 addr 也被新旧对象共同引用,修改任一对象的 addr 内部字段会影响另一对象。
登录后查看答案
判断:在工厂方法模式中,抽象工厂类中声明的工厂方法只能是抽象方法,任何在抽象工厂中为该工厂方法提供默认实现(返回某个具体产品)的做法都违背了工厂方法模式的原则。
某图像导出模块采用简单工厂模式:ExportFactory 根据客户端传入的格式标识,在一个创建方法中选择并实例化对应的具体导出器,客户端只依赖导出器抽象。判断:新增一种具体导出器时,只要客户端继续依赖抽象,就无需修改工厂类。
判断:简单工厂通常由一个工厂根据条件创建不同产品;工厂方法由具体工厂创建一种产品;抽象工厂用于创建相互关联的一族产品。因此,抽象工厂面向单一产品等级结构,而工厂方法面向多个相关产品组成的产品族。
判断题:某多媒体处理系统中,一个类把音频解码、视频解码、字幕加载三个子系统封装起来,为客户端提供一个统一的简单接口以降低使用复杂度;另一个类实现了与真实视频文件对象相同的接口,负责在客户端访问时控制权限并延迟创建真实视频对象。有人认为:这两个类的核心意图相同,都是为了简化客户端对子系统的使用,因此都属于外观模式。这种说法是否正确?
某服务框架在运行时生成代理类,并将真实主题的创建推迟到首次调用服务方法时。判断:该实现按代理类的生成时机属于动态代理,按真实主题的创建时机属于虚拟代理,因此同一代理可以同时具有这两种特征。
判断:某服务对象把客户端面对的入口收敛为一个,因此无论它是协调多个子系统完成任务,还是与真实对象提供相同接口并代其拦截请求,都应归为外观模式。
判断:某公司在重构中决定用桥接模式替代多层继承。理由是:桥接模式中抽象类持有实现接口的引用,抽象与实现两部分可以沿着各自的维度独立扩展;具体实现对象在运行时可被替换甚至动态切换,且新增实现类只需实现接口而无需修改抽象类,这体现了桥接模式的开闭性优点。
判断下列说法的正误:桥接模式中,抽象部分持有的是实现部分接口的引用,因此运行时可以动态更换具体实现而无需修改抽象类;这一“组合替代继承”的做法,正是桥接模式能够让抽象与实现两个维度独立扩展、避免类数量爆炸的原因。
判断:对象适配器通过继承被适配者类并实现目标接口来完成适配。
某文档导出系统需要构建复杂的导出任务对象,包含封面样式、目录结构、页眉页脚、水印和加密设置等多个部件。不同格式(PDF、Word)的构建步骤顺序一致,但各部件的具体实现差异较大。有同学认为:当需要构建的复杂对象只包含一个部件且构建过程无需分步时,建造者模式仍然是最佳选择,因为建造者模式可以封装一切对象的创建。请判断这一说法是否正确。
某档案系统需生成多种结构复杂的归档包,各包都要依次完成元数据整理、文件筛选、索引生成和校验,但各步骤的配置及最终内容差异较大。评审者认为,只有不同归档包的构建步骤顺序不同,才适合采用建造者模式;本系统步骤顺序相同,因此不适用。判断该评审意见是否正确。
判断:在代理模式中,代理类与真实主题通常实现相同的主题接口;虚拟代理可以在首次访问时创建真实主题。
判断:桥接模式通过让抽象类直接继承各具体实现类,形成一一对应关系,从而降低抽象与实现之间的耦合。
判断:在建造者模式中,指挥者类通过调用建造者的构建步骤来组织对象的构建过程。
判断:GoF设计模式著作的作用之一,是为反复出现的设计问题提供可命名、可交流的经验方案;因此,GoF模式名称本身就代表一段可直接复制运行的通用代码。
某数据采集平台采用抽象工厂模式:每个具体工厂创建一组相互兼容的解析器与存储器,客户端可通过抽象接口获得两类产品。若客户端分别从两个不同的具体工厂取得解析器和存储器,只要它们都实现对应的抽象产品接口,抽象工厂模式就能保证二者兼容。判断该表述正误。
判断题:GoF 模式的历史作用仅在于对若干设计技巧进行命名,并未对软件设计实践和后续模式研究产生实际影响。
判断题:在抽象工厂模式中,客户端仅依赖抽象工厂接口与抽象产品接口,因此更换整个产品族时通常只需替换具体工厂实例,无须修改客户端中依赖抽象接口的代码。
某学生在学习笔记中写道:“按目的(意图)划分,设计模式可分为创建型、结构型和行为型三类;其中创建型模式关注对象的创建过程,结构型模式关注类和对象的组合,行为型模式关注对象间的职责分配与通信交互。可见,设计模式的这种分类方式是按模式的实现难度划分的。”请判断该笔记的最后一句结论是否正确。