软考-必须要背的内容

一、设计模式

1、创建型

抽象工厂提供一个接口,创建一系列的相关相互依赖的对象,无需指定具体的类;

eg:系统软件,支持多种数据库

生成器:将一个复杂类的表示与构造分离,使得相同的构建过程能够得到不同表示

eg:同样制作方法,不同种类披萨

工厂方法:定义一个创建对象的接口,但由子类决定需要实例化哪一个类

eg:产品选择用哪个子类产品

原型Prototype:用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象;

eg:自动生成求职简历,工作经验不同(clone)

单例:保证一个类只有一个实例,并且提供一个访问他的全局访问点、、、1855

2、结构型设计模式

适配器:将一个类的接口转换成用户希望得到的另一种接口。使得原本不兼容的接口得以协同工作;eg:USB,Type-c,语言适配?

桥接:将类的抽象部分和它的实现部分分离,使得可以独立变化; 继承树拆分

eg:不同Linux,win系统显示不同后缀图片gif,bmp,jpeg

组合(composite):将对象组合成树型结构以表示“整体-部分”层次结构,使用户对单个对象和组合对象的使用具有一致性

eg:公司,子公司;文件夹,文件,菜单?

装饰器:动态给一个对象添加一些额外职责,子类扩展功能;

eg:operation,super.print()调用父类方法,super(t)表示父类的,发票头尾

person lisi = new Decorator(new A(new student("lisi")))

外观(Facade):定义一个高层接口,为子系统中的一组接口提供一个一致的外观,简化该系统的使用;eg:对外统一接口

享元(Flyweight):提供支持大量细粒度对象共享的有效方法

eg:黑子,白子,位置

代理:其他对象提供一种代理以控制这个对象的访问

3、行为型设计模式

责任链:多个处理器依次处理同一个请求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再传递给 C 处理器,以此类推,形成一个条。链条上的每个处理器各自承担各自的处理职责。

命令:将一个请求封装为一个对象,从而使得可以用不同的请求进行参数化,对请求排队或者记录请求日志以及支持可撤销的操作。

eg:遥控器开关机,开关灯;

解释器:有一个语言需要解释执行,并且你可以将该语言中的句子表示为一个抽象语法树时,可以使用解释器模式

迭代器:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。常用于遍历一个集合对象

中介者:中介模式定义了一个单独的(中介)对象,来封装一组对象之间的交互。将这组对象之间的交互委派给与中介对象交互,来避免对象之间的直接交互。

eg:支付接口

备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。多用于数据备份和恢复的场景。

观察者对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知

eg:关注up,关注某个事情

状态:当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时就可以考虑状态模式

eg:自动贩卖机,会员等级调整。

策略策略模式会定义一系列算法,从概念上来看,所有这些算法完全的都是相同的工作相互替换,只是实现不同,它可以以相同的方式调用所有的算法,

eg:飞机模拟飞行。购物中心打折,满减,原价

模板方法:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算的结构即使重定义该算法的某些特定步骤。

访问者:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作

eg:统计馆藏文献页数?

二、数据结构----图

1、邻接矩阵:n*n

有向图: 行:出度,列:入度;

无向图:对称,第 i 行非0元素个数为顶点 i 的度;

稠密图:O(n2)

2、邻接表:

有向图:空间:n+e,

无向图:n+2e,

稀疏图

3、十字链表:有向图,易

4、广度优先:

队列,不唯一,BFS,层序遍历

空间复杂度:O(n),时间复杂度:O(e);

5、深度优先:

栈,不唯一,BFS,先序遍历

空间复杂度:O(n),时间复杂度:O(e);

6、最小生成树

带权连通无向图

(1)prim:O(v2)边稠密;从顶点开始,找集合边最小;

(2)(贪心算法kruskal:不断选择未被选小权值边,O(eloge),边稀疏;

7、最短路径:

(1)(贪心算法Dijkstra:某一顶点到其他顶点的最短路径(单源),O(v2);

(2)(动态规划Floyed:适用所有顶点间最短路径和带权无向图,

时间复杂度:O(v3)空间复杂度:O(n2)

拓扑排序:AOV网,关键路径--AOE网

二、数据结构----排序

1、查找

顺序查找:ASL=(n+1)/2

二分查找:ASL=O(logn)

2、排序

归并排序:动态规划

不稳定:快些选堆 朋友来

时间快(nlogn):快些归队

一趟确定一个位置:快,选,堆,冒(帽子)

再就是:

正规式:有限自动机的另外一种表达形式

|:表示或

()*:表示循环多次,*可以是0到无穷

计算机网络

dhcp分到的ip是169和0,说明有问题,是错误的

DHCP动态分配ip时候:若没有获取到,Windows是169.254.0.0,linux是0.0.0.0

DHCP客户端可以从DHCP服务端获得本机IP地址、DNS服务器地址、DHCP服务器地址、默认网关的地址(没有web服务器地址和邮件服务器地址)

软件工程:

瀑布模型

每个阶段末尾都会有评审,评审上一阶段的工作是否达标

缺点:初期分析需求无法把控,开发末期的结果和客户要求不一致,全盘推翻==(不能适应变化的需求)==

适用场景需求明确/二次开发/有过经验,用新技术重构也用瀑布

原型:

定义在需求不明确的情况,初期构建一个简易系统让用户发现问题,探索用户的需求==(只应用于需求分析阶段)==,也可以探索出特殊的软件解决方案

能够迅速开发出一个让用户看得见的系统框架,可以用来支持用户界面设计

不能指导代码优化

原型模型最不适合大规模软件开发

增量:

先做出核心好处在核心模块尽早和用户接触了==(逐步理解需求)==,但是这种模式如何进行模块划分是难点

演化(迭代)模型

相比原型,适用于需求清楚,尽早投入使用,要不断改善的时候

螺旋模型

开发活动和风险管理结合起来,求将风险降到最小并控制风险

有多个模型的特点:瀑布+快速原型

包含维护周期,所以开发和维护之间没有本质区别

喷泉模型与RAD

面向对象

用户需求为动力,对象作为驱动,客服了瀑布模型不支持软件重用和多项开发活动集成的局限性

迭代、无间隙(开发活动之间不存在明显边界)

RAD:快速开发模型,SDLC(瀑布模型)+CBSD(构件化开发模型);可以快速构建应用系统

统一过程UP

也称RUP,用例和风险为驱动,以架构为中心,迭代并增量开发

用于大型项目

五个阶段:起始、精化、构建、移交、产生

敏捷开发方法

给开发减轻负担、适合小型项目、随时对接客户

自适应方法ASD==(6个基本原则)、水晶方法Crystal(每个项目用不同方法)、特征驱动开发、并列争球法SCRUM(30天一迭代的冲刺,按需求优先级实现)、极限编程XP(激发创造性、管理负担小,测试先行)

内聚是一个模块内部各个元素彼此结合的紧密程度

巧合内聚(偶然内聚):两个程序块放在一起,但是没有任何关系

逻辑内聚:两个放在一起的程序块有逻辑上的关系(比如根据参数选择调用哪个程序块)

时间内聚:需要同时执行的几个任务放在一起

过程内聚:放在一起的程序块处理的元素是相关的,并且按一定次序

通信内聚(信息内聚):模块内处理的对象都是同一个数据结构

顺序内聚:放在一起的程序块处理的元素是相关的,并且顺序执行

功能内聚:模块内所有元素完成单一功能(不可再分,缺一不可)

耦合是模块之间相互独立性的度量,连接越紧密,耦合性越高,独立性越弱

数据耦合:两个模块之间通过简单数据交换信息

标记耦合:两个模块通过数据结构传递

公共耦合:访问同一个公共的数据环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scrapy顺序执行多个爬虫

Scrapy顺序执行多个爬虫 有两种方式: 第一种:bat方式运行 新建bat文件 cd C:\python_web\spiders\tiktokSelenium & C: & scrapy crawl spider1 & scrapy crawl spider2 & scrapy crawl spider3 & scrapy crawl spider4 第二种&a…

IOS开发者证书快捷申请

App Uploader 在进行iOS应用开发中,可以借助appuploader辅助工具进行证书制作、上传和安装测试等操作。首先,您需要访问官方网站获取最新版本的appuploader。最新版本已经优化了与Apple账号的登录流程,无需支付688元,并提供了Windows版和Mac版供用户选择。下载完成后,解压…

USART串口通信(stm32)

一、串口通信 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 STM32F103C8T6 USART资源: USART1、 USART2、 USART3 自带波特率发生器&…

方正畅享全媒体新闻采编系统 binary.do SQL注入漏洞复现

0x01 产品简介 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、发…

【华三包过】2024年/华三H3C/云计算GB0-713

H3CNE-cloud-云计算-713 想转行 想继续深入 题库覆盖百分百,题库有新版106道新版113道旧版88道 H3C认证云计算工程师(H3C Certified Network Engineer for Cloud,简称H3CNE-Cloud) 认证定位于全面掌握虚拟化技术原理及相关产品/…

MySQL的数据库和表

查看数据库 命令行的方式: cd /mysql/bin mysql.exe -uroot -p IP(不是连接自己) 端口(不是3306) show databases; 直接使用图形化界面点击: 查看库里的表 使用命令行查看: 进入mysql数据库 u…

JavaFX学习教程二

一、JavaFX 体系结构 JavaFX 场景图(Scene Graph)是构建 JavaFX 应用程序的起点,一种树状数据结构,用于排列(和分组)图形对象,以便于逻辑表示。 stage:舞台,操作系统窗口的 JavaFX 表示,是所有…

Nodejs+Socket.io+Web端完成聊天

前言 源码获取:nodeexpresssocket.ioweb: 聊天demo (gitee.com) 目录结构 后端依赖 启动方式 前端是html正常启动 后端是node app.js 后端app.js核心代码 const express require(express) const app express() var http require(http).Server(app) var io require(so…

浅谈C++函数

目录 一、函数的概念二、调用函数的两个前提三、函数传参的三种形式四、函数返回类型 一、函数的概念 函数是C程序的基本模块,通常一个C程序由一个或多个函数组成。函数可以完成用户指定的任务,一般分为库函数和用户自定义的函数。函数由函数头和函数体…

02. Flink 快速上手

02. Flink 快速上手 1、创建项目导入依赖 pom文件&#xff1a; <properties><flink.version>1.17.0</flink.version> </properties><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java<…

【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;C语言刷题系列 目录 一、问题描述 二、解题思路 解题思路&#xff1a; 解题步骤: 三、C语言代码实现及测试 一、问题描述 给定一…

指北者智能音乐学习机隆重亮相广州国际乐器展

2024年5月23-26日广州国际乐器展览会在广交会展馆B区隆重开幕&#xff0c;本届展会开设5大展厅、50000平方米的主题展区&#xff0c;吸引了700多家国内外参展商参展&#xff0c;打造集展示、商贸、文化交流、文娱于一体的广阔平台。深圳市指北科技有限公司也携旗下品牌指北者智…

基于JSP/Servlet校园二手交易平台(二)

目录 2 开发技术及开发环境 2.1 Java语言简介 2.2 J2EE技术介绍 2.3 Servlet/JSP技术 2.4 MVC 简介 2.5 Struts 技术 2.6 Hibernate 技术 2.6.1 应用程序的分层体系结构 2.6.2 Hibernate的应用及API简介 2.7 开发环境及环境配置 2.7.1 Java/JSP系统环境 2.7.2 JSP环…

小程序-购物车-基于SKU电商规格组件实现

SKU 概念&#xff1a; 存货单位&#xff08; Stock Keeping Unit &#xff09;&#xff0c; 库存 管理的最小可用单元&#xff0c;通常称为“单品”。 SKU 常见于电商领域&#xff0c;对于前端工程师而言&#xff0c;更多关注 SKU 算法 &#xff0c;基于后端的 SKU 数据…

(二)vForm 动态表单设计器之下拉、选择

系列文章目录 &#xff08;一&#xff09;vForm 动态表单设计器之使用 目录 系列文章目录 前言 一、后端需提供接口 二、组件配置 总结 前言 动态表单下拉、选择等组件&#xff0c;大概率要使用数据库中的数据&#xff0c;那么vForm如何拿到数据库中的数据呢&#xff1f;跟随…

动物合并消除休闲游戏源码 Animal Merge 益智游戏

一款动物合并消除休闲游戏源码&#xff0c;Animal Merge是一款引人入胜的益智游戏&#xff0c;玩家的任务是合并方块&#xff0c;创造出可爱的动物&#xff0c;这些动物的体型会逐渐变大。游戏玩法包括将方块放到网格上&#xff0c;并战略性地将它们合并以形成更大的动物形状。…

【408精华知识】主存相关解题套路大揭秘!

讲完了Cache&#xff0c;再来讲讲主存是怎么考察的&#xff0c;我始终认为&#xff0c;一图胜千言&#xff0c;所以对于很多部件&#xff0c;我都是通过画图进行形象的记忆&#xff0c;那么接下来我们对主存也画个图&#xff0c;然后再来详细解读其考察套路~ 文章目录 零、主存…

python-pytorch 下批量seq2seq+Bahdanau Attention实现问答1.0.000

python-pytorch 下批量seq2seq+Bahdanau Attention实现简单问答1.0.000 前言原理看图数据准备分词、index2word、word2index、vocab_size输入模型的数据构造注意力模型decoder的编写关于损失函数和优化器在预测时完整代码参考前言 前面实现了 luong的dot 、general、concat注意…

【话题】我眼神的IT行业现状与未来趋势

目录 一、挑战 教学资源的重新分配 教师角色的转变 学生学习方式的改变 教育评价体系的挑战 二、机遇 个性化学习 跨学科学习 国际合作与交流 创新教育模式 三、如何培养下一代IT专业人才 更新教育理念 加强基础设施建设 整合课程资源 加强实践教学 培养跨学科…

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制&#xff1a;超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释&#xff1a; 数据分段与发送&#xff1a; 发送方将要发送的数据分成一…