全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某企业系统按业务域拆分为订单、库存、物流三个子系统,每个子系统内部设置一个协调对象,负责该域内同事对象之间的请求转发与调度;三个协调对象之间不直接交互,各自独立完成本域协调。有设计者断言:中介者模式要求交互中心化,因此整个系统只能存在一个全局中介者,上述多个协调对象的设计违背了中介者模式的交互中心化。该断言是否正确?
登录后查看答案
某支付网关重构后:网关将不同支付渠道(微信、银行卡)的扣款实现封装为统一接口,网关类持有该接口的引用,这消除了渠道与网关间的紧耦合,体现的是____模式;订单金额与手续费的计算规则被封装为独立可替换的算法族,体现的是____模式;同一渠道在扣款成功后需追加风控校验与流水记录,且二者可按任意顺序叠加,最适合采用____模式;流程中固定的“验签—风控—扣款—记录”步骤骨架由父类定义、子类填充细节,采用的是____模式。
某数据归档系统的抽象归档流程固定按“校验、转换、写入”执行;转换步骤调用可替换的格式策略,写入步骤调用存储接口。审计装饰器也实现存储接口,内部持有真实存储对象,并在委托写入前后记录日志。判断:审计装饰器实现了存储接口,因此可不持有真实存储对象而独立完成写入;该设计仍能同时保留真实存储与审计功能。
某日志组件要求:全局仅存在一个日志管理器实例以统一写入同一文件;同时日志的编码格式(JSON、XML、纯文本)需在运行时由调用方切换,各格式算法相互独立且预计独立演化,管理器自身不会因内部状态变化而改变格式。为改善设计,管理器实例的唯一性应采用____模式实现,可切换的格式算法应采用____模式封装;若日志写入方法只有一种且永不变化,则不应再为其引入策略抽象,以免增加不必要的结构复杂度。
某设备管理平台将园区、机房和设备统一组织为树形结构,客户端以一致方式遍历和处理各层节点;新增设备巡检与能耗统计操作时,不修改节点类,而由独立对象遍历节点并执行操作。该设计中,树形对象结构与独立操作对象分别体现____模式和____模式。
某集合按顺序保存元素:东、南、西、北。为其创建迭代器 i,i 从首元素开始;next() 返回当前元素并前进一位,hasNext() 只检查是否还有元素且不改变游标位置。判断:依次执行 i.next() 得到东,再执行 i.next() 得到南,此时调用 i.hasNext() 会返回 false。
某报表模块中,ReportGenerator.generate() 方法长达 200 行,内部先拼接 XML 字符串生成报表,再硬编码调用不同的统计函数;随着需求变化,还需支持 JSON 输出,开发者发现 generate() 中'组织数据'与'输出格式'两个变化维度交织在一起。下列重构手法与模式引入的组合,最符合'先改善结构、再用模式分离变化方向'原则的是( )A. 直接在 generate() 中再增加一层 if-else 判断输出格式,避免改动类结构 B. 先用提取方法将数据组织与格式输出拆为独立方法,再引入桥接模式分离数据维度与格式维度 C. 将整个 generate() 复制为 generateJSON(),两份代码各自维护 D. 用单例模式包裹 ReportGenerator,使全局只有一个生成器实例
某文档编辑器中,方案甲将“删除选中文字”封装为独立请求对象,编辑器持有该对象可实现撤销栈排队重放,但不改变行为逻辑;方案乙中编辑器对象收到“删除”调用后,执行效果取决于其当前处于“插入模式”还是“命令模式”,且执行后自动切换状态。据此填空:方案甲体现命令模式,其核心是把请求封装为对象从而支持撤销与排队,行为本身不随对象____变化;方案乙体现状态模式,其核心是使对象行为随其____改变并可能触发____。综合判断:判断“删除”请求执行逻辑归属的模式,甲为命令模式、乙为状态模式,两者最本质的区别在于____。
某报表模块的三种导出方法重复执行相同的参数校验与结果记录,但根据格式使用不同导出算法。重构者先将重复的校验和记录提取为公共方法;随后新增格式时,仍需在原有导出类的条件分支中添加分支。有人据此认为,只要继续把条件分支提取为私有方法,就能避免新增格式时修改原有类,无须考虑引入设计模式。判断该说法是否正确。
某医学影像系统的享元工厂按扫描协议管理共享重建模板,每个协议对应唯一模板对象。系统按顺序请求协议甲、乙、甲、丙、乙、丁、丙;工厂命中时复用池中对象,未命中时创建并登记,且不淘汰对象。处理完全部请求后,池中模板对象数是多少? A. 3 B. 4 C. 5 D. 7
某接口中,“提交任务”会把一次请求封装成对象,供调用方独立选择并交付执行;另一对象收到“提交任务”调用后,具体响应由它当前所处阶段决定。前者属于____模式,后者属于____模式。
某图书管理系统中「图书」对象的状态图包含以下描述:图书初始处于「在馆」状态;当发生事件「借出」时,迁移至「已借出」状态;在「已借出」状态期间收到事件「续借」时,状态保持不变但记录续借次数;当收到事件「归还」时迁移至「在馆」;若归还时图书破损,则迁移至「维修中」状态;「维修中」状态下收到事件「修复完成」后回到「在馆」。以下关于该状态图的判断,正确的是:A. 「续借」事件应建模为一条从「已借出」到自身的自迁移(自转移) B. 「归还」事件应建模为「在馆」状态的入口动作 C. 「在馆」与「已借出」之间的两条迁移可合并为一条双向迁移 D. 初始伪状态应画在「已借出」状态之前作为迁移起点
判断:在UML通信图中,为表达消息的先后顺序,应在消息前添加编号(如 1、1.1、2),其中带小数点的编号(如 1.1)表示该消息是编号 1 所指消息执行过程中触发的嵌套消息。
某在线订票系统交互如下:乘客向购票界面发送消息1「提交订票请求」;购票界面随即向库存模块发送消息1.1「查询余票」,库存模块返回消息1.2「余票结果」;查询成功后,购票界面向订单模块发送消息2「创建订单」,订单模块返回消息2.1「订单编号」。现需将该通信图转换为等价的顺序图,消息在生命线上自上而下按编号升序排列(含返回消息)。则消息「订单编号」在顺序图中位于自上而下的第____条位置;与顺序图相比,通信图更能突出地表达的方面是对象之间的____关系(填「时间顺序」或「连接/链接」)。
某高校教务系统的类模型描述如下:「学院」类由「大学」类创建后才能存在,大学销毁时其学院也随之销毁;「教师」类对象可独立于「学院」类对象先创建,再被学院聘任管理;「选课记录」类连接「学生」类与「课程」类,三方均可独立存在;「成绩单」类在其方法 printReport() 的参数中使用了「学生」类对象,除此之外无其他结构联系;「研究生」类与「学生」类之间具有“是一种”的关系。请在各空填入上述类间关系的标准名称(关联、聚合、组合、依赖、泛化之一):大学—学院为____;学院—教师为____;学生—选课记录—课程为____;成绩单—学生为____;研究生—学生为____。
某设备借用系统中,Student 表示学生,Device 表示设备,Borrowing 表示一次借用记录。每条 Borrowing 必须且只对应一名 Student 和一件 Device;一名 Student 或一件 Device 可对应零条或多条 Borrowing。借用记录另存借出时间与归还时间,前者必填,后者可空。按“类名端标注该端对象对另一端对象的多重性”约定,写出 Student—Borrowing 关联两端的多重性;并指出借出时间、归还时间应表示为 Borrowing 的属性还是关联。答案:Student端____,Borrowing端____;两项时间均为____的属性。
某图书馆管理系统建模时,得到两组描述。甲组:类「读者」具有属性姓名、借书证号和操作借书、还书,类「图书」与「读者」之间存在关联「借阅」,多重性为 1 对 0..*。乙组:某一时刻,具体读者张三(证号 T2024001)通过关联「借阅」链接到具体图书《软件工程》(馆藏编号 B0057),张三当前借书 1 册。下列说法正确的是:A. 甲组是对象图,乙组是类图,因为乙组描述了具体数据 B. 甲组是类图,乙组是对象图,类图描述抽象类与关系,对象图刻画某一时刻对象实例及链接 C. 两者都是类图,只是详细程度不同 D. 两者都是对象图,区别仅在于是否给出操作
在UML类图中,一个名为「订单」的类被规范地表示为一个三层矩形。下列关于该类图符号表示的说法,正确的是哪一项? A. 第一层写类名「订单」,第二层写属性(如 orderDate: Date),第三层写操作(如 calcTotal(): Money) B. 第一层写属性,第二层写操作,第三层写类名「订单」 C. 第一层写类名,第二层写操作,第三层写属性,且三层顺序可任意调换 D. 类名必须写在最下层的矩形区域中,属性与操作依次向上排列
在面向对象分析中,领域模型是对领域内概念类或对象的____(填图形化描述方式)表示,它展示了领域中的重要概念及其之间的关系。与后续设计阶段的类图不同,领域模型中的类通常只包含属性而不包含____,因为它关注的是对现实世界的静态描述而非系统实现细节。这种模型的主要作用是帮助分析人员与领域专家建立共同的____,从而准确捕获问题域中的关键信息。
类“订单”具有属性“编号”“日期”和操作“提交()”。下列哪项符合类图中类的基本表示? A. 上栏:订单;中栏:编号、日期;下栏:提交() B. 上栏:编号、日期;中栏:订单;下栏:提交() C. 上栏:订单;中栏:提交();下栏:编号、日期 D. 上栏:订单;中栏:编号、提交();下栏:日期