软件设计师笔记(三)-设计模式和算法设计

news2024/12/25 15:09:02

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!本章主要以下午题出现形式为主!

文章编辑于:2024-5-13 13:43:47

目录

1. 设计模式考试要点:

1.1 创建型

1.1.1 Product Method(工厂方法) 类模式

1.1.2 Abstract Factory(抽象工厂模式)

1.1.3 Builder(生成器模式)

1.1.4 Prototype(原型模式)

1.1.5 Singleton(单例)

1.2 结构性模式

1.2.1 Adapter(适配器) 类模式

1.2.3 Bridge(桥接)

1.2.4 Composite(组合)

1.2.5 Decorator(装饰器)

1.2.6 Facade(外观)

1.2.6 Flyweight(享元)

1.2.7 Proxy(代理)

1.3 行为设计模式

1.3.1 Chain of Responsibility (责任链)

1.3.2 Command(命令)

1.3.3. Interptreter(解释器)类模式

1.3.4 Iterator(迭代器)

1.3.5 Mediator(中介者)

1.3.6 Memento(备忘录)

1.3.7 Observer(观察者)

1.3.8 State(状态)

1.3.9 Strategy (策略)

1.3.10 Template Method(模板方法) 类模式

2. 算法设计

2.1 回溯法

2.2 分治法

2.3 动态规划


1. 设计模式考试要点:

记忆:

类模式【4种】: 工厂方法类模式,适配器类模式,解释器类模式,模板方法类模式,

创建型: 丹丹原本想去超市买生抽,但去了工厂。

结构性:ABCDFFP (首字母)

行为性:xxx(自己记xxx)

注意:适配器: 属于结构性模式,存在适配器类模式和适配器对象模式!

1.1 创建型

1.1.1 Product Method(工厂方法) 类模式

关键词Product

1.1.2 Abstract Factory(抽象工厂模式)

1.1.3 Builder(生成器模式)

1.1.4 Prototype(原型模式)

1.1.5 Singleton(单例)

1.2 结构性模式

1.2.1 Adapter(适配器) 类模式

1.2.3 Bridge(桥接)

1.2.4 Composite(组合)

1.2.5 Decorator(装饰器)

1.2.6 Facade(外观)

1.2.6 Flyweight(享元)

1.2.7 Proxy(代理)

1.3 行为设计模式

1.3.1 Chain of Responsibility 责任链

1.3.2 Command(命令)

1.3.3. Interptreter(解释器)类模式

1.3.4 Iterator(迭代器)
1.3.5 Mediator(中介者)

1.3.6 Memento(备忘录)

1.3.7 Observer(观察者)

1.3.8 State(状态)

1.3.9 Strategy (策略)

1.3.10 Template Method(模板方法) 类模式

2. 算法设计

2.1 回溯法

经典例子:N皇后的问题

注意不能在同一行,不能在斜线上,

假如使用一维数组表示第I行位置的位置Q[i], j作为下一行的位置

判断同一行的话就是Q[i] == Q[j]

判断同一斜线:abs(i-j) == fabs(Q[i]-Q[j])

2.2 分治法

常常使用到递归;

经典例子:阶乘,归并排序硬币查真假

递归排序算法

时间复杂度O(nlog2n)

空间复杂度O(n)

硬币查真假问题

2.3 动态规划

经典例子:0-1 背包问题

矩阵连乘

最长公共子序列

0-1背包,时间复杂度:O(NW) N是价值,W是重量

0-1背包,空间复杂度:O(NW)

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

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

相关文章

聚焦光量子应用开发!Quandela 发布新版量子计算云服务

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:1200字丨5分钟阅读 摘要:法国光量子计算公司 Quandela宣布推出新版量子计算云服务 Quandela Cloud 2.0,通过创新技术确保量…

C++初阶:8.list

list 一.list的介绍及使用 1. list的介绍 list的文档介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中…

AXI Interconnect IP核的连接模式简介

AXI Interconnect IP核内部包含一个 Crossbar IP核,用于在 Slave Interfaces(SI)和 Master Interfaces(MI)之间路由传输。在连接 SI 或 MI 到 Crossbar 的每条路径上,可以选择性地添加一系列 AXI Infrastru…

3389端口报SSL_TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】漏洞

1、win+R运行,输入gpedit.msc进入本地计算机策略 2、本地计算机组策略——>计算机配置——>管理模板——>网络——>ssl配置设置 3、打开ssl密码套件顺序 4、点击已开启,把密码套件替换为下一步中的套件内容。 套件内容 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_…

韵搜坊(全栈开发)-- 项目介绍

文章目录 项目介绍技术栈前端后端 业务流程 后端地址: https://github.com/IMZHEYA/zhesou-backend 前端地址: https://github.com/IMZHEYA/zhesou-frontend 图标设计(AI生成): 项目介绍 一个聚合搜素平台&#xff…

火山引擎A/B测试平台的实验管理重构与DDD实践

本次分享的主题是火山引擎数智平台VeDI旗下的A/B测试平台 DataTester 实验管理架构升级与DDD实践。这里说明的一点是,代码的第一目标肯定是满足产品需求,能够满足产品需求的代码都是好代码。而本文中对代码的好坏的评价完全是从架构的视角,结…

机器人增量学习研究综述

源自:控制与决策 作者:马旭淼 徐德 “人工智能技术与咨询” 发布 摘 要 机器人的应用场景正在不断更新换代,数据量也在日益增长.传统的机器学习方法难以适应动态的环境,而增量学习技术能够模拟人类的学习过程,使机器人能利用旧知识来加快新任务的…

维护祖传项目Tomcat部署war包

文章目录 1. 安装tomcat2. 解决Tomcat启动日志乱码3. idea配置启动war包 1. 安装tomcat 选择免安装版本,只需要在系统变量里面配置一下。 新增系统变量 CATALINA_HOME D:\Users\common\tomcat\apache-tomcat-8.5.97-windows-x64\apache-tomcat-8.5.97 编辑追加Path…

ROS2入门21讲__第03讲__ROS2安装方法

目录 前言 Linux系统简介 Ubuntu系统简介 Ubuntu虚拟机安装 1. 下载系统镜像 2. 在虚拟机中创建系统 3. 设置虚拟机硬盘大小 4. 设置Ubuntu镜像路径 5. 启动虚拟机 6. 设置用户名和密码 7. 等待系统安装 8. 完成安装 ROS2系统安装 1. 设置编码 2. 添加源 3. 安装…

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代,大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市,提供了理想的环境来部署多IP服务器,从而为大数据分析提供了独特的优势。…

文档解析与向量化技术加速多模态大模型训练与应用

前言 随着人工智能技术的不断发展,多模态大模型作为一种新型的机器学习技术,逐渐成为人工智能领域的热点话题。多模态大模型能够处理多种媒体数据,如文本、图像、音频和视频等,并通过学习不同模态之间的关联,实现更加…

Mac安装jadx

1、使用命令brew安装 : brew install jadx 输入完命令,等待安装完毕 备注(关于Homebrew ): Homebrew 是 MacOS 下的包管理工具,类似 apt-get/apt 之于 Linux,yum 之于 CentOS。如果一款软件发布时支持了 homebrew 安…

[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解

目录 1.DNS1.DNS背景2.域名简介 2.ICMP协议1.ICMP功能2.ICMP两类报文 3.ping命令4.traceroute5.NAT技术1.NAT技术背景2.NAT IP转换过程3.静态地址NAT && 动态地址NAT4.网络地址端口转换NAPT5.NAT技术的缺陷6.NAT和代理服务器 6.总结1.数据链路层2.网络层3.传输层4.应用…

如何给远程服务器配置代理

目录 前言 正文 更换镜像源 开始之前 安装过程 遇到的问题 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China&#x1f4…

使用Git管理github的代码库-上

1、下载安装Git https://download.csdn.net/download/notfindjob/11451730?spm1001.2014.3001.5503 2、注册一个github的账号(已经注册的,可略过这一步) 3、打开git命令行,配置github账号 git config --global user.name &quo…

CCleaner系统优化与隐私保护工具,中文绿色便携版 v6.23.11010

01 软件介绍 CCleaner 是一款高级的系统优化工具,其设计宗旨在于彻底清理 Windows 操作系统中积累的无用文件和冗余的注册表项。此举旨在显著提升计算机的运行效率并回收磁盘空间。该软件拥有高效的能力,可以清除包括临时文件、浏览器缓存及其历史记录在…

Java入门——继承和多态(中)

组合 和继承类似, 组合也是一种表达类之间关系的方式, 也是能够达到代码重用的效果. public class Student { ... } public class Teacher { ... } public class School { public Student[] students; public Teacher[] teachers; } 组合并没有涉及到特殊的语法(诸如 ex…

如何通过香港站群服务器高效实现网站内容的快速更新?

如何通过香港站群服务器高效实现网站内容的快速更新? 在当今激烈的数字市场竞争中,网站内容的快速更新对于吸引用户和保持竞争优势至关重要。而利用香港站群服务器实现这一目标,则具备诸多优势。下面将详细探讨如何通过香港站群服务器高效实现网站内容…

【CSP CCF记录】数组推导

题目 过程 思路 每次输入一个Bi即可确定一个Ai值,用temp记录1~B[i-1],的最大值分为两种情况: 当temp不等于Bi时,则说明Bi值之前未出现过,Ai必须等于Bi才能满足Bi是Ai前缀最大的定义。当temp等于Bi时,则说…

树莓派nmap扫描

debian系统安装nmap: sudo apt install nmap安装nmap完成后,输入 ip route 来查看当前Wi-Fi路由器的ip地址。 第一行的default via后显示的便是网关地址,也就是路由器地址。 获取到路由器ip地址后,在终端中输入: …