某图形编辑器中,用户经常需要基于一个已经配置好样式、大小、边框和阴影效果的图形对象,快速创建多个相似对象,并在复制后只修改少量属性。为了避免重复复杂初始化过程,较适合采用的设计模式是()。
第 704 题
按年份、批次和题号整理软件设计师题目。进入详情页可查看答案解析、考点标签和相关题目。
某图形编辑器中,用户经常需要基于一个已经配置好样式、大小、边框和阴影效果的图形对象,快速创建多个相似对象,并在复制后只修改少量属性。为了避免重复复杂初始化过程,较适合采用的设计模式是()。
某报表系统生成一份复杂报告时,需要按固定流程设置标题、数据源、图表、页眉页脚和导出格式,但不同客户的具体配置和展示细节不同。设计人员希望把构建过程和最终表示分离,较适合采用的设计模式是()。
某绘图软件希望在不暴露图形对象内部细节的情况下,保存对象当前状态,便于用户执行撤销操作时恢复到之前的状态。较适合采用的设计模式是()。
某系统的订单子系统内部包含库存、价格、优惠、物流等多个服务。为了让客户端不必分别调用这些服务,设计人员提供了一个统一的 OrderFacade 接口来完成下单流程。这个设计更接近()。
某在线文档系统需要显示大量字符对象。很多字符的字体、编码、基本形态可以共享,而位置、颜色、上下文状态由外部传入。为了减少大量相似对象带来的内存开销,较适合采用的设计模式是()。
某订单对象会经历“待支付、已支付、已发货、已完成、已取消”等状态,不同事件会触发状态转换;另一个图用于描述用户提交订单、系统校验库存、生成支付单、通知仓库发货这一串业务处理步骤。关于这两类 UML 图,下列说法较合理的是()。
某系统需要根据用户选择的优惠规则,在满减、折扣、返券等算法之间切换;另一个系统中,订单会随着待支付、已支付、已发货、已完成等状态变化而表现出不同操作行为。前者和后者分别更适合使用()。
在 UML 类图中,订单和订单明细之间通常表现为整体与部分的强拥有关系,订单被删除时订单明细也随之消失;而班级和学生之间虽然也可看作整体与部分,但学生可以脱离某个班级继续存在。前者和后者分别更适合表示为()。
某 CPU 在执行加法、比较、转移等指令时,需要记录进位、零结果、溢出、中断允许状态等运行状态信息。通常用于保存这些状态和标志位的是()。
CPU 访问主存时,需要先指出要访问的是哪个存储单元。通常用于保存该主存地址,并把地址送往地址总线的寄存器是()。
在 CPU 执行程序的过程中,需要保存下一条将要执行指令的地址,以便按顺序取指或在转移后继续执行。通常承担这一功能的寄存器是()。
某系统中,不同支付方式都需要提供统一的 pay() 能力,但各支付方式内部实现完全不同;另一个场景中,多种报表类有一部分通用字段和通用生成步骤,同时还保留若干需要子类实现的步骤。关于接口和抽象类的使用,下列说法较合理的是()。
在面向对象程序设计中,同一个类中存在多个同名方法,但参数个数或参数类型不同;而子类重新定义父类中已有的方法,以改变该方法在子类对象上的行为。关于这两种情况,下列说法较合理的是()。
在一个连通带权无向图中,需要选出若干条边,使所有顶点都连通,且边权之和最小,同时不能形成回路。解决这类问题时,较常用的一组算法是()。
操作系统采用银行家算法进行资源分配。系统在真正分配资源前,会先判断分配后是否仍存在某种进程执行顺序,使所有进程最终都能获得所需资源并顺利完成。这个判断主要是为了确认系统处于哪种状态?
某绘图软件既支持圆形、矩形等不同图形,又支持 Windows、Linux、Web 等不同绘制平台。如果把每种图形和每个平台都做成一个子类,类数量会迅速膨胀。设计师希望让图形抽象和平台实现可以独立变化。更适合采用哪种设计模式?
某请假审批系统中,1 天以内由组长审批,3 天以内由部门经理审批,更长时间需要总监审批。系统把审批请求沿着处理对象链逐级传递,直到某一级能够处理为止。该设计最接近()。
某绘图软件把“画线、移动图形、删除对象”等操作封装成独立对象,并记录在命令历史中。用户点击撤销时,系统按历史记录反向执行对应操作。该设计最接近()。
在订单处理活动图中,设计人员把“提交订单”“审核库存”“支付确认”“安排发货”分别放在用户、库存系统、支付系统、仓储部门等不同区域,以便看清每个活动由谁负责。这些区域通常称为()。
在平衡二叉排序树 AVL 中,插入一个新结点后,某个结点左右子树高度差超过允许范围。为了恢复二叉排序树的有序性和平衡性,通常需要进行()。
在哈希表中,两个不同关键字经过哈希函数计算后得到相同的存储地址。某实现把映射到同一地址的元素挂在同一个链表中,查找时先定位桶,再在链表中比较关键字。该冲突处理方法通常称为()。
在无权图中,从起点开始按层访问相邻顶点,先访问距离起点 1 条边的顶点,再访问距离 2 条边的顶点。为了保持这种“先发现、先扩展”的访问顺序,通常使用的数据结构是()。
某跨平台界面库需要在 Windows 和 macOS 下分别创建按钮、文本框、菜单等一组风格一致的控件。开发团队希望客户端只依赖统一接口,而不直接关心具体平台控件类。较合适的设计模式是()。
某系统最初用一个静态工厂方法根据参数创建不同产品。后来产品类型不断增加,团队希望把创建逻辑延迟到具体工厂子类中,由不同工厂负责创建对应产品。后一种设计更接近()。
在白盒测试中,某覆盖准则要求程序中每条可执行语句至少执行一次;另一覆盖准则要求每个判断的真、假分支至少各执行一次。下列说法正确的是()。
在 MVC 架构中,用户通过界面提交请求,控制器负责接收请求并协调处理,模型负责业务数据和业务规则,视图负责展示结果。下列说法正确的是()。
某数据导入流程固定为读取文件、校验数据、转换格式、写入系统四个步骤,但不同文件类型在校验和转换细节上不同。希望父类定义流程骨架,子类实现部分步骤,较适合采用()。
某个类同时负责用户权限校验、订单计算、报表导出和邮件发送,后续任意一类需求变化都可能导致该类被修改。为了降低修改影响,设计上更应遵循()。
在分时操作系统中,多个交互式用户进程需要轮流获得 CPU,每个进程运行一个固定时间片后让出处理机。较符合这种思想的调度算法是()。
在操作系统页面置换中,若内存已满,需要选择一个页面换出。LRU 算法的基本思想是淘汰()。
某系统需要展示 Web 服务器、应用服务器、数据库服务器之间的部署关系,以及软件构件部署在哪些硬件节点上。此时较适合使用的 UML 图是()。
某业务服务直接依赖具体的短信发送类,后来需要改成邮件、站内信等多种通知方式,修改成本较高。设计人员希望业务服务依赖通知接口,而具体通知方式实现该接口。这主要体现了()。
在订单系统中,订单表保存客户编号,客户表保存客户名称。若希望查询订单编号及对应客户名称,需要把两张表按客户编号关联起来,较常使用的 SQL 操作是()。
在操作系统进程同步中,信号量常配合 P、V 操作使用。一般来说,P 操作会申请资源并可能使进程等待,V 操作会释放资源并可能唤醒等待进程。下列理解正确的是()。
两个进程分别占有一部分资源,又都等待对方释放资源,导致谁也无法继续执行。操作系统中产生死锁通常需要同时满足互斥、请求并保持、不可剥夺和()。
在排序算法中,如果两个关键字相同的记录排序前后相对次序不变,就称该排序算法是稳定的。归并排序在合并两个有序子序列时,若相等元素优先取左侧子序列元素,通常可以保持()。
某数据处理系统的主要流程是输入数据、进行格式检查和转换、生成处理结果并输出。设计人员希望根据数据流图把系统划分为输入、变换中心和输出等模块。较适合采用的方法是()。
在分析网上报销业务时,分析人员希望描述填写申请、部门审批、财务审核、付款等活动之间的先后顺序、分支和并行处理。此时更适合使用的 UML 图是()。
某系统后续会不断增加新的报表类型。设计人员希望新增报表时尽量通过增加新类完成,而不是频繁修改已经稳定的核心代码。这种思想主要体现了()。
用邻接矩阵存储一个有 n 个顶点的图时,无论边数多少,都需要一个 n×n 的矩阵来表示顶点之间是否相邻。其存储空间复杂度通常为()。
某课程系统中,学习“数据库实践”前必须先学“数据库基础”,学习“项目实训”前必须先完成“程序设计”和“数据库实践”。若要给这些课程排出一个满足先修关系的学习顺序,较适合使用()。
在数据结构中,若一种线性结构只能在一端进行插入和删除,表现为后进先出;另一种结构在一端插入、另一端删除,表现为先进先出。下列说法正确的是()。
在一个带权图中,所有边的权值均为非负数。现在需要从某个源点出发,求它到其他各顶点的最短路径。较常用的算法是()。
快速排序通过选取基准元素,将序列划分为左右两个子序列,再递归排序。通常情况下,快速排序的平均时间复杂度为()。
某大型软件项目技术难度高、需求存在不确定性,团队希望在每一轮迭代中都进行风险识别、风险分析和风险控制,再逐步推进开发。较适合采用的软件过程模型是()。
某项目需求比较明确、变更较少,团队希望按需求分析、设计、编码、测试、运行维护等阶段顺序推进。与此相比,另一个项目需求不够清楚,需要先做一个可演示样品让用户确认。下列判断较合理的是()。
在订单系统中,一个客户可以拥有多个订单,但每个订单通常只属于一个客户。将该 ER 模型转换为关系模式时,较常见的处理方式是()。
某关系模式已经满足第二范式,但存在“学号 → 系号,系号 → 系名”,从而可以由学号间接推出系名。为了进一步规范化,应重点消除的是()。
已知 4 个叶子节点的权值分别为 2、3、7、8。按哈夫曼树构造规则,每次选取两个最小权值合并,则最终哈夫曼树的带权路径长度 WPL 为()。
对一棵二叉树进行遍历时,如果访问顺序是“先访问根节点,再遍历左子树,最后遍历右子树”,这种遍历方式称为()。
某绘图软件中,单个图形和由多个图形组成的图形组都需要支持移动、缩放、绘制等操作。为了让客户端能够一致地处理单个对象和组合对象,较适合采用的设计模式是()。
某系统已经有一个文件读取对象,现在希望在不修改原对象的情况下,动态增加缓存、压缩、日志记录等附加功能。若重点是给对象逐层增加职责,更适合采用()。
在 UML 类图中,班级与学生可以理解为整体和部分,但学生离开某个班级后仍然可以独立存在;而订单与订单明细通常生命周期绑定,订单不存在时明细也没有独立意义。下列说法较合理的是()。
在图书借阅系统中,“借书”用例每次都必须执行“验证读者身份”;而“借书”在特殊情况下才会触发“缴纳欠费”。从 UML 用例关系看,较合理的判断是()。
某电商系统需要根据普通会员、VIP 会员、节日活动等不同规则计算折扣。开发人员希望把不同折扣算法封装起来,并在运行时灵活替换。较适合采用的设计模式是()。
在设计登录功能时,分析人员希望表达用户界面、认证服务、用户数据库之间按时间顺序发送消息的过程。此时更适合使用的 UML 图是()。
设计一个业务系统时,设计人员希望每个模块内部职责清晰,模块之间依赖尽量少,以便后续修改一个模块时不容易影响其他模块。这体现了()。
系统需要复用一个已有组件,但该组件提供的接口与当前系统期望的接口不一致。为了在不修改原组件的情况下让它能够被当前系统使用,较适合采用()。
对一个有序表进行折半查找,表中共有 100 个元素。查找一个元素时,最多需要比较的次数约为()。
在软件模块设计中,希望一个模块内部功能联系紧密,而模块之间相互依赖尽量少。该设计原则通常概括为()。
某系统中,一个对象状态发生变化时,需要自动通知多个依赖对象进行更新。为了降低对象之间的直接依赖,适合采用的设计模式是()。
在 UML 类图中,如果“学生”和“教师”都可以看作“人员”的一种特殊类型,通常应使用哪一种关系表示这种“is-a”关系?
某系统需要根据不同业务场景创建不同类型的产品对象,并希望把对象创建逻辑延迟到子类中完成。此时更适合采用哪一种设计模式?
在数据流图 DFD 中,用来表示对输入数据进行处理、转换,并产生输出数据的成分通常称为什么?
在软件模块设计中,希望一个模块内部职责集中、模块之间依赖尽量少。这个设计原则通常概括为什么?
某算法执行时间与输入规模 n 成正比,通常可将其时间复杂度表示为?
某类在系统运行期间只需要创建一个实例,并提供全局访问点,较适合采用哪种设计模式?
在操作系统中,下列关于进程和线程的说法,正确的是哪一项?
某关系模式 R 中,若每一个非主属性都完全函数依赖于候选键,则 R 至少满足哪一种范式?
某系统需要在不修改已有对象结构的前提下,为对象结构中的元素增加新的操作。较适合采用的设计模式是?