当前位置: 首页 > news >正文

软考 系统架构设计师系列知识点之设计模式(6)

接前一篇文章:软考 系统架构设计师系列知识点之设计模式(5)

所属章节:

老版(第一版)教材

第7章. 设计模式

        第2节. 设计模式实例

相关试题

1. 设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类,它是一种()模式;()模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于()模式;()模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

第1空

A. 组合型

B. 结构型

C. 行为型

D. 创建型

正确答案:D。

第2空

A. Bridge

B. Proxy

C. Prototype

D. Adapter

正确答案:A。

第3空

A. 组合型

B. 结构型

C. 行为型

D. 创建型

正确答案:B。

第4空

A. Command

B. Facade

C. Memento

D. Visitor

正确答案:A。

解析:

设计模式包括:创建型、结构型、行为型三大类别。

抽象工厂模式属于创建型设计模式。

桥接模式属于结构型设计模式。

  • 抽象工厂(Abstract Factory)模式

Abstract Factory(抽象工厂)模式在不指定具体类的情况下,为创建一系列相关或相互依赖的对象提供了一个接口。根据给定的相关抽象类,Abstract Factory模式提供了从一个相匹配的具体子类集创建这些抽象类的实例的方法。

Abstract Factory模式提供了一个可以确定合适的具体类的抽象类,这个抽象类可以用来创建实现标准接口的具体产品的集合。客户端只与产品接口和Abstract Factory类进行交互。使用这种模式,客户端不用知道具体的构造类。Abstract Factory模式类似于Factory Method模式,但是Abstract Factory模式可以创建一系列的相关对象。

  • 桥接模式(Bridge)模式

Bridge模式可以将一个复杂的组件分成两个独立的但又相关的继承层次结构:功能性的抽象和内部实现。改变组件的这两个层次结构很简单,以至于它们可以相互独立地变化。当具有抽象的层次结构和相应的实现层次结构时,Bridge模式是非常有用的。除了可以抽象和实现组合成许多不同的类,该模式还可以以动态组合的独立类的形式实现这些抽象和实现。

  • Command模式

Command模式在对象中封装了请求,这样就可以保存命令,将该命令传递给方法以及像任何其它对象一样返回该命令。

2. 某互联网公司正在设计一套网络聊天系统,为了限制用户在使用该系统时发表不恰当言论,需要对聊天内容进行特定敏感词的过滤。针对上述功能需求,采用()能够灵活配置敏感词的过滤过程。

A. 责任链模式

B. 工厂模式

C. 组合模式

D. 装饰模式

正确答案:A。

解析:

本题考查常见设计模式的特点。

Abstract Factory(抽象工厂)模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

Chain of Responsibility(责任链)模式:为解除请求的发送者和接收者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一个链,并沿着这条链接传递该请求,直到有一个对象处理它。

Composite(组合)模式:将对象组合成树型结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。

Decorator(装饰器)模式:装饰器模式动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。

依据题意,需要限制用户在使用聊天系统时发布不恰当言论,需要对聊天内容进行特定敏感词的过滤,最为关键的一点是需要灵活配置过滤关键字。如果本系统采用责任链模式,即可达到这一点。

相关文章:

软考 系统架构设计师系列知识点之设计模式(6)

接前一篇文章:软考 系统架构设计师系列知识点之设计模式(5) 所属章节: 老版(第一版)教材 第7章. 设计模式 第2节. 设计模式实例 相关试题 1. 设计模式描述了一个出现在特定设计语境中的设计再现问题&…...

use renv with this project create a git repository

目录 1-create a git repository 2-Use renv with this project 今天在使用Rstudio过程中,发现有下面两个新选项(1)create a git repository (2) Use renv with this project. 选中这两个选项后,创建新项目,在项目目…...

摄像头种类繁多,需要各自APP

老外报怨吾APP不能用之后,吾按照提供的图片买了一个。昨天到货以后,心想这下你小子可被我逮住了,非解决你不可…… 吾APP当然不能用。老外声称能用的APP也不能用。又下载了一个,还是不能用。 最后只能老老实实的想办法从Google P…...

Openssl数据安全传输平台010:jasoncpp 0.10.7的编译 - Windows-vs2022 / Ubuntu/ Centos8 -含测试代码

文章目录 0. 代码仓库1 安装1.1 windows 下的安装1.2 Linux 下的安装1.2.1 相关环境配置问题1.2.2 准备安装1.2.2.1 安装scons1.2.2.2 安装jsoncppUbuntu系统下Centos8系统下 2 编译 c 测试文件: json-test.cpp2.1 配置库文件2.2 配置VS2.3 Winsows系统下cpp文件测试…...

GSCoolink GSV6182 带嵌入式MCU的MIPI D-PHY转HDMI 2.0

Gscoolink GSV6182是一款高性能、低功耗的MIPI D-PHY到HDMI 2.0转换器。通过集成基于RISC-V的增强型微控制器,GSV6182创造了一种具有成本效益的解决方案,提供了上市时间优势。MIPI D-PHY接收器支持CSI-2版本1.3和DSI版本1.3,每条通道最高可达…...

ABBYY FineReader PDF15免费版图片文件识别软件

ABBYY全称为“ABBYY FineReader PDF”, ABBYY FineReader PDF集优秀的文档转换、PDF 管理和文档比较于一身。 首先这款软件OCR文字识别功能十分强大,话不多说,直接作比较。下图是某文字识别软件识别一串Java代码的结果,识别的结果就不多评价…...

如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码

环境: Win10 专业版 远程解锁 蓝牙解锁小程序 问题描述: 如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码 手机不需要拿出来,在口袋里就可以自动解锁&#xff…...

几道面试题记录20231023

1, JVM优化 -Xms-Xmx -Xmn -Xss -XX:PermSize -XX:MaxPermSize -NewRatio -SuvriorRatio 收集器配置: 一般:串行收集 Serial 吞吐优先:并行收集Pramllel 响应优先:并发收集Conc 2,支付掉单如何解决? 因为网络等原…...

c++ 线程安全的string类

非安全string 说明 c标准未规定stl容器以及字符串的线程安全性&#xff0c;故std::string在多线程下是不安全的。 代码示例 #include <iostream> #include <stdio.h> using namespace std;std::string *sp nullptr;void Read() {for(int i 0; i < 100000;…...

linux上安装apktool反编译apk解析AndroidManifest.xml得到首页Activity

需求 在linux系统上反编译安卓app, 有些应用需要知道其主页Activity用于adb指令打开其主页。 安装 自动安装脚本 #!/bin/bashwget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O ./apktool wget https://bitbucket.org/iBotPeac…...

代码随想录算法训练营第4天| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

JAVA语言编写 24. 两两交换链表中的节点 谷歌、亚马逊、字节、奥多比、百度 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。…...

【面向对象程序设计】Java大作业 汽车租赁管理系统V4.0

前言 自己大二时候使用JavaMysql写的租车系统大作业V4.0黑窗口版的一个记录&#xff0c;简简单单的黑窗口&#xff0c;不是炫酷的前后端分离也没用GUI&#xff0c;但功能完善&#xff0c;该有都有&#xff0c;当时得分也还是挺不错的 技术栈 Java (jdk8)Mysql 资源包内容 …...

golang模拟QQ退出后自动重启

模拟QQ退出后自动重启&#xff0c;go build xxx.go 打包成exe运行。 processName 为你所需要的进程exe processNamePath 为你所需要的进程路径 package mainimport ("bytes""errors""fmt""os""os/exec""regexp"&…...

jQuery中ajax如何使用

jQuery中ajax如何使用及代码详解 1. 引言 在现代Web开发中&#xff0c;使用Ajax进行异步数据交互变得非常普遍。而在jQuery中&#xff0c;提供了便捷的方法来实现Ajax请求&#xff0c;简化了开发过程。本文将介绍jQuery中如何使用Ajax以及通过代码详解其使用方法。 2. Ajax简介…...

redis集群的多key原子性操作如何实现?

1、背景 在单实例redis中&#xff0c;我们知道多key原子性操作可以用lua脚本或者multi命令来实现。 比如说有一个双删场景&#xff0c;要保证原子性同时删除k1和k2。 可以用lua双删 EVAL "redis.call(del, KEYS[1]);redis.call(del, KEYS[2])" 2 k1 k2也可以用事务…...

密码学与网络安全:量子计算的威胁与解决方案

第一章&#xff1a;引言 在当今数字化世界中&#xff0c;网络安全一直是一个备受关注的话题。密码学作为网络安全的基石&#xff0c;扮演着至关重要的角色。然而&#xff0c;随着科学技术的不断进步&#xff0c;特别是量子计算的崛起&#xff0c;传统密码学的基础受到了严重威…...

GoLong的学习之路(十二)语法之标准库 flag的使用

上回书说到&#xff0c;fmt的标准库的一些常用的使用函数。这次说flag的使用&#xff0c;以下这些库要去做了解。不然GG&#xff0c;Go语言内置的flag包实现了命令行参数的解析&#xff0c;flag包使得开发命令行工具更为简单。 文章目录 os.Argsflag包flag.Type()flag.TypeVar(…...

mac git ssh

1.作用 1.不用账号密码拉取git项目 2.使用 1.检查是否生成ssh的公钥和私钥 命令&#xff1a; cd ~/.ssh表示没有 No such file or directory 2.如果没有就生成公钥和私钥 ssh-keygen -t rsa -C "帅哥***.com"后面的是git邮箱地址 然后一直按enter&#xff0c;…...

栈、共享栈、链式栈(C++实现)

文章目录 前言1. 栈的顺序存储&#xff08;顺序栈&#xff09;2. 栈的基本操作&#x1f351; 入栈操作&#x1f351; 出栈操作&#x1f351; 获取栈顶元素&#x1f351; 获取栈的长度&#x1f351; 判断是否为空栈&#x1f351; 判断栈是否满了&#x1f351; 打印栈内的元素&am…...

MySQL实战2

文章目录 主要内容一.回访用户1.准备工作代码如下&#xff08;示例&#xff09;: 2.目标3.实现代码如下&#xff08;示例&#xff09;: 二.如何找到每个人每月消费的最大天数1.准备工作代码如下&#xff08;示例&#xff09;: 2.目标3.实现代码如下&#xff08;示例&#xff09…...

【面试经典150 | 栈】简化路径

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;字符串数组模拟栈 其他语言python3 写在最后 Tag 【栈】【字符串】 题目来源 71. 简化路径 题目解读 将 Unix 风格的绝对路径转化成更加简洁的规范路径。字符串中会出现 字母、数字、/、_、. 和 .. 这几种字符&#…...

无线电编码和记录和静音检测器 PlayOutONE LiveStream 5.0

直播编码器&#xff0c;随处流式传输。LiveStream 应用程序的多色图案屏幕截图&#xff0c;显示一波进入&#xff0c;四路流出来&#xff0c;LiveStream是一站式应用程序&#xff0c;可让您的电台在需要的地方输出。 对音频进行编码以进行流式传输&#xff0c;使用您最喜欢的V…...

React中useEffect Hook使用纠错

引言 React是一种流行的JavaScript库&#xff0c;用于构建用户界面。它提供了许多强大的功能和工具&#xff0c;使开发人员能够轻松地构建交互式和可重用的组件。其中一个最常用的功能是React的useEffect Hook&#xff0c;它允许我们在函数组件中执行副作用操作。然而&#xf…...

0049【Edabit ★☆☆☆☆☆】【修改Bug代码】Buggy Code

0049【Edabit ★☆☆☆☆☆】【修改Bug代码】Buggy Code bugs language_fundamentals Instructions The challenge is to try and fix this buggy code, given the inputs true and false. See the examples below for the expected output. Examples has_bugs(true) // &qu…...

javaswing/gui的科学计算器

一个使用javajavaswing/gui的科学计算器程序。 支持加减乘除&#xff0c;函数运算&#xff0c;清空&#xff0c;退回等操作。 还支持进制运算。 源码下载地址 支持&#xff1a;远程部署/安装/调试、讲解、二次开发/修改/定制...

Chapter1:C++概述

此专栏为移动机器人知识体系的 C {\rm C} C基础&#xff0c;基于《深入浅出 C {\rm C} C》(马晓锐)的笔记&#xff0c; g i t e e {\rm gitee} gitee链接: 移动机器人知识体系. 1.C概述 1.1 C概述 计算机系统分为硬件系统和软件系统。 硬件系统&#xff1a;指组成计算机的电子…...

实战经验分享FastAPI 是什么

FastAPI 是什么&#xff1f;FastAPI实战经验分享 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7e9e23e6fe3444238413d91f37064b65.png](https://fastapi.tiangolo.com/) FastAPI 是一个先进、高效的 Python Web 框架&#xff0c;专门用于构建基于 Python 的 API。它是…...

Edge浏览器中常用的20个快捷键

Microsoft Edge&#xff0c;和许多其他网络浏览器一样&#xff0c;设有一系列的键盘快捷方式&#xff0c;旨在提高用户效率。以下是Edge浏览器的20个实用快捷键&#xff1a; Ctrl T - 打开一个新标签页。Ctrl W&#xff08;或 Ctrl F4&#xff09;- 关闭当前标签页。Ctrl …...

winscp显示隐藏文件

当前目录下有被隐藏的文件时&#xff0c;会在右下角看到 “已隐藏” 的字样&#xff0c;双击这个字样&#xff0c;就会显示被隐藏的文件和文件夹...

uniapp获取地理位置的API是什么?

UniApp获取地理位置的API是uni.getLocation。它的作用是获取用户的当前地理位置信息&#xff0c;包括经纬度、速度、高度等。通过该API&#xff0c;开发者能够实现基于地理位置的功能&#xff0c;如显示用户所在位置附近的商家、导航服务、天气查询等。 以下是一个示例&#x…...