- 博客(314)
- 收藏
- 关注
原创 【从零开始学习计算机科学与技术】系统工程概论(四)系统仿真 与 系统评估
层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。这种方法的特点是在对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。SD的研究对象主要是社会(经济)系统。
2025-03-21 19:55:38
1037
原创 【从零开始学习计算机科学与技术】系统工程概论(三)系统模型与模型化
通过各种创造性技术,提取问题的构成要素,利用有向图、矩阵等工具和计算机技术,对要素及其相互关系等信息进行处理,最后用文字加以解释说明,明确问题的层次和整体结构,提高对问题的认识和理解程度。其特点是把复杂的系统分解为若干子系统(要素),利用人们的实践经验和知识,以及电子计算机的帮助,最终将系统构造成一个多级递阶的结构模型。在邻接矩阵中,对应每节点的行中,元素值为1的数量,就是离开该节点的有向边数:列中1的数量。邻接矩阵是表示系统要素间基本二元关系或直接联系情况的方阵,描述图中各节点两两间邻接的关系,记作A。
2025-03-21 19:54:40
954
原创 【从零开始学习计算机科学与技术】系统工程概论(二)系统工程方法论
系统分析(SA)是在对系统问题现状及目标充分挖掘的基础上,运用建模及预测、优化、仿真、评价等方法,对系统的有关方面进行定性与定量相结合的分析,为决策者选择满意的系统方案提供决策依据的分析研究过程。在不能建立精确数学模型的情况下,用结构模型或语言模型来描述系统的现状,概念模型来自于根底定义,是通过系统化语言对问题抽象描述的结果,其结构及要素必须符合根底,定义的思想,并能实现其要求。方法论,就是人们认识世界、改造世界的一般方法,是人们用什么样的方式、方法(程序思想方法来观察事物和处理问题。
2025-03-21 19:52:36
1100
原创 【从零开始学习计算机科学与技术】系统工程概论(一)一般系统论 与 系统工程概论
系统工程以系统为研究对象,通过对系统各要素进行组织和协调,从而更,好地实现系统的整体目标。SE所谓系统工程,是用来开发、运行、革新一个大规模复杂系统所需思想、程序、方法的总和或总称。系统工程将对象(社会、经济、管理等领域中的综合性问题)作为系统(实物为中心到系统为中心);系统工程是工程技术,是应用学科,用于直接改造客观世界;系统工程组织管理系统的全部活动;系统工程具有普遍的适用性和科学性。
2025-03-21 19:51:41
1055
原创 【从零开始学习计算机科学】软件测试(十)嵌入式系统测试、游戏开发与测试过程、移动应用软件测试 与 云应用软件测试
内部的测试人员,他们都是精选的职业玩家分析人员,对游戏有很深的认识,在内部测试时,对上面的点进行分析利用外部游戏媒体专业人员对游戏作分析与介绍,既可以达到宣传的效果,又可以达到测试的目的。在云环境中的测试利用云资源对其他的软件系统进行测试,涉及与云测试密切相关的资源调度、优化、建模等方面问题,以便为其他软件搭建廉价、便捷、高效的测试环境,加速整个软件测试的进程。云计算的虚拟化实现方式,为云测试的虚拟化提供了较大的便利,测试资源的虚拟化,使测试资源可以随用户的需求提供,动态延展。
2025-03-21 19:41:50
783
原创 【从零开始学习计算机科学】软件测试(九)Web系统测试 与 数据库测试
一般来说,数据迁移工具支持txt文件的数据迁移、支持excel文件的数据迁移、支持XML数据导出、支持从SQLServer的表、约束及数据迁移、支持从Oracle的表、约束及数据迁移、支持从DB2的表、约束及数据迁移、支持从Oracle进行数据迁移的性能。按职能来分,可分为:应用功能的测试、Web应用服务的测试、安全系统的测试、数据库服务的测试、软件的质量特性、功能测试、性能测试、安全性测试、兼容性测试、易用性测试。因此,数据库的性能优化可以从以下方面考虑:物理存储、逻辑设计、数据库的参数调整。
2025-03-21 19:32:39
1128
原创 【从零开始学习计算机科学与技术】计算机网络(七)应用层
不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。当用户单击一个超级链接(URL)时,浏览器检查URL(读取浏览器的输入),浏览器向 DNS服务器询问域名的IP地址,DNS返回对应的IP地址,浏览器和Web服务器建立TCP 连接(在端口80),浏览器发送请求,要求获取文件products.html,Web服务器返回被请求的文件,TCP连接被释放,浏览器解释显示下载到本地的文件。
2025-03-18 14:10:12
957
原创 【从零开始学习计算机科学与技术】计算机网络(六)传输层
从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送 方窗口值的一半(但不能小于2)。另外,慢开始的“慢”并不是指cwnd的增长速率慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段(目的是试探一下网络的拥塞情况),然后再逐渐增大cwnd。
2025-03-18 14:09:25
910
原创 【从零开始学习计算机科学与技术】计算机网络(五)网络层
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。基本算法是:每个分组都包含一个序列号,序列号随着新分组产生而递增,路由器记录下他看见的所有(源路由器,序列号)对,当一个的新的分组到达时,路由器根据它的记录:如果该分组是新的,就被从除了来线路外的所有其他线路转发出去(flooding,泛洪);使用这种机制,路由器不必记录全部主机的IP地址,缩减了路由器的规模。
2025-03-18 14:08:35
1335
原创 【从零开始学习计算机科学与技术】计算机网络(四)介质访问子层
这样,在站A向站B发送数据的同时,站C也可以发送自己的数据而不会干扰站B接收数据(注意:站C收听不到站B的信号表明,站B也收不听到站C的信号)。假设系统中有N个用户,需N个时隙,在低负荷条件下,如每帧的数据量为d bit,额外比特数为N(等待时隙),则效率为d/(d+N),在高负荷条件下,即所有的站都希望一帧接一帧发送,位图按平均分配给每一帧,一帧只占一位,则效率为d/(d+1)。因此,站D在收到站B发送的CTS帧后,应在站B随后接收数据帧的时间内关闭数据发送操作,以避免干扰站B接收自A站发来的数据。
2025-03-18 14:07:53
941
原创 【从零开始学习计算机科学与技术】计算机网络(三)数据链路层
这么做的问题在于,一旦关键字节传输错误(这种情况在不稳定的连接中也很有可能发生),后面的数据都存在识别错误的风险。2,如果在帧的数据部分中存在0x7E则在该字节前,填充 0x7D,吧 0x7E 和 0x20 进行异或运算,对出现的0x7D 同样处理 0x7E 变为 0x7D 0x5E,0x7D 变为 0x7D 0x5D。基于以上思路,我们通常采用累计确认(ACK(n))机制,即如果收到一个确认帧ACK(n) , 表示期望对面发送序号为n的帧,以及无错的接收到之前的全部帧(序号为n-1,n-2,
2025-03-18 14:06:48
1101
原创 【从零开始学习计算机】计算机网络(二)物理层
数据以格式化的位序列形式发送,即所谓的数据包。比特填充,比特填充相较字节填充要简单得多,其核心思想是通过插入一个bit的数据来破坏可能与特殊位序列相同的信号,比如在PPP帧的同步传模式下,转义位序列0x7E的二进制表示是01111110,因此只要帧数据部分中每出现5个1时在后面插入一个0就可以避免在数据中出现0x7E。接收方只需要将数据T与每个站点的码片序列进行内积运算,当与站点i的码片序列内积为1时,表示站点i发送了数据1,当内积为-1时,表示站点i发送了数据0,当内积为0时,表示站点i没有发送数据。
2025-03-18 14:05:55
1165
原创 【从零开始学习计算机】计算机网络(一)计算机网络分层结构
问题包括:子网中路由的控制,包含执行分段/重新组合(碎片/碎片整理),其中,路由可以基于静态表,在会话开始时确定,高度动态(根据网络负载对每个数据包进行变化)等方式。1972年,ARPAnet公开演示,提出NCP(网络控制协议),是第一个主机-主机协议。吞吐量,通信信道上成功发送消息的平均速率(每时间单位传输的数据),以每秒位数(bps),kbps,Mbps,Gbps,Tbps为单位。对等进程"认为"通信是使用协议的"横向",即对等实体的通信,这是一种虚拟通信,其交换的数据称为协议数据单元 (PDU)
2025-03-18 14:04:54
1236
原创 【从零开始学习计算机科学】软件测试(八)网站测试、软件国际化 与 软件本地化
使用通用的图标和位图,避免不同区域的文化和传统差异,避免在图标和位图中嵌入需要本地化的文字。软件本地化的基本步骤主要是:建立一个配置管理体系,跟踪目标语言各个版本的源代码,创造和维护术语表,其次从源语言代码中分离资源文件、或提取需要本地化的文本,然后把分离或提取的文本、图片等翻译成目标语言;最后,测试翻译后的软件调整以适应翻译后的文本,测试本地化后的软件,确保格式和内容正确。软件本地化是指将一个软件产品按特定国家地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。
2025-03-18 14:03:35
827
原创 【从零开始学习计算机科学】软件测试(七)自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
2025-03-18 14:02:47
1141
原创 【从零开始学习计算机科学】软件测试(六)软件开发中的软件测试过程 与 验收测试
工作的输入是软件测试计划、测试用例、软件测试记录。软件测试总结阶段的主要工作是根据软件测试的执行情况,作出两方面的评价:一是评价软件测试的效果;二是评价被测试的软件。本阶段要完成的主要任务如下:描述测试状态、描述软件状态、完成测试报告、保存测试文件。工作的输出是测试报告。
2025-03-18 14:02:03
891
原创 【从零开始学习计算机科学】软件测试(五)白盒测试
白盒测试也称结构测试或逻辑驱动测试,通过了解软件系统的内部工作过程,设计测试用例来检测程序内部动作是否按照规格说明书规定的正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作。白盒测试基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件,使用程序设计的控制结构导出测试用例。
2025-03-18 14:01:11
1303
原创 【从零开始学习计算机科学】软件测试(四)黑盒测试
因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件到输出结果的各种组合情况。等价类划分为有效等价类和无效等价类。黑盒测试用一系列真实的数据类型和数据值运行,测试超负荷及其他“最坏情况”的结果,其特点是用假想的数据类型和数据值运行,测试排斥不规则输入的能力;按照([输入条件][有效等价类][无效等价类])建立等价类表,列出所有划分出的等价类,为每一个等价类规定一个唯一的编号。
2025-03-18 13:59:55
1073
原创 【从零开始学习计算机科学】软件测试(三)回归测试、系统测试 与 验收测试
验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。验收测试完成的准则主要有:规定的所有验收测试用例已经运行;对软件缺陷的所有修改都已进行了回归测试;发现的缺陷已经解决或关闭;达到预期的覆盖率目标,一般要求产品特性或业务需求覆盖率为100%;修改软件缺陷后,所有相关的软件文档的版本均已经更新;获得用户/客户签署的验收测试报告。
2025-03-18 13:53:00
1023
原创 【从零开始学习计算机科学】软件测试(二)单元测试 与 集成测试
单元是指一个最小的单元应该有明确的功能、性能、接口定义而且可以清析地与其他单元区分开。单元测试(Unite Testing)又称为模块测试,主要来检验软件设计中最小的单位——模块。一般来说模块的内聚程度高,每一个模块只能完成一种功能,因此模块测试的程序规模小,易检查出错误。我们可以通过单元测试进行程序语法检查和程序逻辑检查,验证程序的正确性。
2025-03-18 13:51:24
1523
原创 【从零开始学习计算机科学】软件测试(一)软件测试概论与基本测试过程
软件测试是由“验证Verification”和“有效性确认Validation”活动构成的整体。“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性。“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。软件测试不等于程序测试,且软件测试贯串于软件定义和开发的整个过程,软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。
2025-03-18 13:47:43
834
原创 【从零开始学习计算机科学】信息安全(十四)安全管理
作为定级对象的信息系统应该是由相关的和配套的设备、 设施按照一定的应用目标和规则组合而成的多资源集合,单一设备(如服务器、终端、网络设备等)不单独定级。其具有7大安全等级:D、C1、C2、B1、B2、B3和A级。一般地,信息安全管理体系包括信息安全组织架构、信息安全方针、信息安全规划活动、信息安全职责,以及信息安全相关的实践、规程、过程和资源等要素,这些要素既相互关联,又相互作用。信息安全管理体系是整个管理体系的一部分,它是基于业务风险方法,来建立、实施、运行、监 视、评审、保持和改进信息安全的体系。
2025-03-17 14:27:26
829
原创 【从零开始学习计算机科学】信息安全(十三)区块链
能否在互联网环境(开放环境)下,创造一种技术,使得在无法保证人们相互信任的前提下,还能从事价值交换的活动?其核心是开放环境下安全问题(信任问题、交易问题、存储问题、计算问题)。什么是区块链(Blockchain)?去中心化的、分布式的、区块化存储的链式共享数据库。区块链起源于Bitcoin(比特币),区块链是比特币的支撑技术,比特币是区块链的第一个应用。
2025-03-17 14:26:37
1209
原创 【从零开始学习计算机科学】信息安全(十二)身份认证
在Internet环境下,如果无法确知通信双方的身份,则很容易发生假冒行为。在安全的网络通信中,涉及的通信各方必须通过某种形式的身份认证机制来证明他们的身份,验证用户的身份与所宣称的是否一致,然后才能进行通信。从某种意义上说身份认证是其他安全机制的基础。加密的主要作用是保护通信双方的隐私;而消息鉴别的主要作用在于确保数据的完整性;数字签名具有身份鉴别的作用。认证的对象主要是网络通信、交易中的实体,包括用户、设备、进程、系统等。
2025-03-17 14:25:53
1167
原创 【从零开始学习计算机科学】信息安全(十一)访问控制
资源访问存在的威胁主要有:未授权的访问,包括未经授权的使用、泄露、修改、销毁信息以及颁发指令等;非法用户进入系统;合法用户对系统资源的非法使用。访问控制的基本目标是防止对任何资源(如计算资源、通信资源或信息资源)进行未授权的访问。访问控制对机密性、完整性起直接的作用。对于可用性,可通过对以下信息的有效控制来实现:谁可以颁发影响网络可用性的网络管理指令,谁能够滥用资源以达到占用资源的目的,谁能够获得可以用于拒绝服务攻击的信息。访问控制的核心特点是明确定义的主体和客体;
2025-03-17 14:25:00
991
原创 【从零开始学习计算机科学】信息安全(十)安全协议
TCP/IP网络安全协议按层次归类如下:主要用于链路层连接的认证与保密,已有的安全协议如下:隧道协议PPTP、L2F、L2TP;口令认证协议(PAP);挑战响应认证协议(CHAP);Shiva口令认证协议(SPAP);扩展认证协议(EAP);微软的挑战/响应握手认证协议(MS-CHAP);微软的点对点加密协议(MS-MPPE)。网络层是实现全面安全的最低层次,网络层安全协议可以提供ISO安全体系结构中所定义的所有安全服务。IETF的IPSec WG的IP安全协议(IPSec)包括:认证头(AH)、封装安全有
2025-03-17 14:21:49
1260
原创 【从零开始学习计算机科学】信息安全(九)入侵检测
传统安全技术是否足够?每一种安全机制都有一定的应用范围和应用环境,防火墙限制内外网之间的访问,但对内部网络攻击是无能为力的,而50%-85%以上的攻击事件来自于内部的攻击。防火墙放外不防内;安全工具的使用受到人为因素的影响。一个安全工具使用受制于人。例如,NT可以达到C2级的安全性,但很少有人能进行合理的设置;系统的后门是传统安全工具难于考虑到的地方。多数情况下,这类入侵行为可以通过防火墙而很难被察觉;只要有程序,就可能存在BUG。几乎每天都有新的BUG被发现和公布。
2025-03-17 14:21:04
1130
原创 【从零开始学习计算机科学】信息安全(八)防火墙
防火墙是一种在两个信任程度不同的网络之间设置的、用于加强访问控制的软硬件保护设施。防火墙是在两个网络之间执行访问控制安全策略的系统,它可以是软件,也可以是硬件,或两者并用。防火墙作为“控制点”,限制信息的进入或离开;防火墙可以防止侵入者接近并破坏内部网络资源;防火墙可用于监视、记录、审查重要的业务流;防火墙可实施网络地址转换NAT,缓解地址短缺矛盾。防火墙只允许已授权的业务流通过,而且本身也应抵抗渗透攻击。建立防火墙必须全面考虑安全策略,否则形同虚设。
2025-03-17 14:17:15
1388
原创 【从零开始学习计算机科学】信息安全(七)网络攻击
漏洞扫描用于发现漏洞,指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞的一种安全检测(渗透攻击)行为。漏洞扫描作用有发现安全隐患、安全风险评估、修补安全漏洞。但是,攻击者利用漏洞扫描,发现系统安全隐患,为实施攻击作准备。主机漏洞扫描(被动扫描):通常在目标系统上安装了一个代理(Agent)或者是服务(Services)以便能够访问所有的文件与进程,以此来扫描计算机中的漏洞。网络漏洞扫描(主动扫描):通过网络来扫描远程计算机中的漏洞。
2025-03-17 14:16:18
1141
原创 【从零开始学习计算机科学】信息安全(六)信息隐藏
互联网使数据交换、传输、复制成为一件较简单的事情;IT技术应用产生了很多数字化产品,如数字化的音乐产品、数字化的视频产品、数字化的图像。数字化产品本身的可复制和广泛传播特性使得个人或团体有可能在没有得到原作者授权的情况下进行非法拷贝和传播。目前,加密、签名技术不能完全解决数字化产品的保护。利用加密、签名技术可以把数字化产品转换成不易被攻击者破解的密文,从而达到保护目的。签名可以保护数字化产品的真实性。但是,加密或签名后的数字化产品失去了其易理解性,影响了传播和使用。而且,加密一旦被破解,就失去了保护意义。
2025-03-17 14:15:29
976
原创 【从零开始学习计算机科学】信息安全(五)数字签名
如何保证一份文件(合同)的真实特性?现实中人们采用手写签名的形式。在网络中如要进行交易,也需要保证这真实性。真实性内涵:信源与信宿真实,内容真实(没有被篡改),双方都不能抵赖。加密不能提供者这种特性,主要防止信息被非法使用;消息摘要也不能提供这种特性,主要防止信息被篡改。消息鉴别用于收发双方无利害冲突,防止第三方破坏。收方能够验证消息发送者身份是否被篡改;收方能够验证所发消息内容是否被篡改。数字签名用于收发双方有利害冲突,必须采用数字签名技术。
2025-03-17 14:10:28
1104
原创 【从零开始学习计算机科学】信息安全(四)消息鉴别
消息鉴别(message authentication)是证实收到的消息来自可信信源且消息未被篡改的过程,又称消息认证、报文认证、报文鉴别。鉴别的目的在于验证消息源是否真实,非假冒(真实性)与验证消息是否真实(完整性)(未被篡改、不是重放、未被延迟)。消息篡改包括以下几种。内容篡改:以插入、删除、调换或修改等方式篡改消息或数据;序号篡改:在依赖序号的通信协议中(如TCP)等,对通信双方报文序号进行篡改,包括插入、删除和重排序等;时间篡改:对报文进行延迟或回放,破坏其时间上的完整性。
2025-03-17 14:02:51
1025
原创 【从零开始学习计算机科学】信息安全(三)信息加密、RSA加密 与 椭圆曲线加密
密码技术发展主要有四个阶段。密码学发展初期阶段,密码学未形成一门独立的科学;其特点有:标志性事件有:标志性事件有:1984年,Bennett C H和 Brassard G发表BB84协议。量子密码的特点是唯一理论上安全的,即使P=NP,其也是安全的;其它都是计算安全的,基于计算复杂性,但当NP=P时,就无安全可言。第二、三、四阶段也称为现代密码学阶段。一般的数据加密模型是公开信道保密通信。密码主要保障传输的信息内容不被第三方(攻击者)获得。一个密码系统(体制)可用一个五元组来表示(M,C,K,E,D)。明
2025-03-17 14:02:06
1160
原创 【从零开始学习计算机科学】信息安全(二)物理安全
选择建筑地点时应该考虑的因素有可见性、周围地形、建筑的标志和标记、相邻建筑物的类型、周围地区和外界条件、犯罪率、与警察、医疗和消防机构的接近程度、周围区域可能带来的危险、可接近性、道路接近、交通拥挤情况、与机场、火车站和高速公路的接近程度、自然灾害、发生火灾、龙卷风、地震或飓风的可能性、有危害的地形(泥石流、山上的落石、过多的降雨或降雪)等。由于公共访问系统的高可见性,攻击公众访问系统对机构的声誉和公众的信息水平可能会造成切实的影响,无形中增加了来自公众访问系统外部和内部的安全威胁,加大了安全管理的难度。
2025-03-17 14:01:09
1386
原创 【从零开始学习计算机科学】信息安全(一)信息安全介绍
一是计算机网络的系统安全,计算机网络的系统安全主要指计算机网络平台的安全性,二是计算机网络中的信息安全,而信息安全主要是指信息本身的安全性,因此这两类安全问题既有区别又有联系,但核心是网络上的信息安全,保护网络的信息安全是最终目的。不可抵赖性通常又称为不可否认性,是指信息的发送者无法否认已发出的信息或信息的部分内容,信息的接收者无法否认已经接收的信息或信息的部分内容。对信息系统安全的威胁是多方面的,目前还没有统一的方法对各种威胁加以区别和进行准确的分类,因为不同威胁的存在及其重要性是随环境的变化而变化的。
2025-03-17 13:53:06
1110
原创 【从零开始学习计算机科学】设计模式(三)适配器模式、桥接模式、过滤器模式、组合模式、装饰器模式、外观模式、享元模式、代理模式
在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。:提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。
2025-03-17 13:33:29
1316
原创 【从零开始学习计算机科学】设计模式(四)责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、空对象模式、策略模式、模板模式、访问者模式
模板方法模式是一种行为型设计模式,它定义了一个操作中的算法的骨架,而将一些步骤的实现延迟到子类中。责任链模式是一种行为型设计模式,它将请求的处理者链式地连接起来,允许多个对象有机会处理请求,从而避免了请求发送者与多个处理者之间的耦合。迭代器模式是一种行为型设计模式,它提供一种方法,顺序地访问一个聚合对象(如数组、集合等)中的元素,而无需暴露该对象的内部表示。备忘录模式是一种行为型设计模式,它允许在不暴露对象实现细节的情况下,捕获和保存对象的内部状态,以便在以后恢复对象的状态。
2025-03-16 17:16:02
976
原创 【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式
原型模式是一种创建型设计模式,它通过复制现有的对象来创建新的对象,而不是通过实例化来创建。这种模式的核心思想是:如果一个对象的创建成本较高或者重复创建同样类型的对象会浪费资源时,可以通过复制现有对象来获得新的实例。建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。通过建造者模式,客户端可以不关心对象的创建过程,只需提供所需的参数,而让建造者类来负责具体的构建逻辑。它控制类的实例化过程,避免了多个实例的创建,保证了类的实例在整个生命周期内是唯一的。
2025-03-16 16:48:22
1122
原创 【从零开始学习计算机科学】设计模式(五)MVC模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式、服务定位器模式、传输对象模式
MVC模式通过分离数据、视图和控制逻辑,使得应用程序更易于扩展和维护。虽然它的架构较为复杂,但对于需要维护长期项目的团队开发,MVC是一个非常有效的架构设计模式。业务代表模式通过创建一个中介代理对象,简化了客户端与复杂业务逻辑层之间的交互,减少了它们之间的耦合,增强了系统的可维护性和灵活性。组合实体模式通过将多个实体对象组合成一个复合实体的设计模式,它简化了客户端对多个实体的管理,并降低了客户端与实体对象之间的耦合度。
2025-03-16 16:48:09
1071
原创 【从零开始学习计算机科学】设计模式(一)设计模式概述
设计模式在现代软件开发中扮演着至关重要的角色。它们是开发者在长期实践中总结出来的解决方案,提供了标准化的方式来应对日常开发中经常遇到的问题。通过设计模式,程序员不仅可以提高代码的重用性和可维护性,还能减少系统中的复杂性。设计模式的核心目标是解决软件设计中的常见问题,并在此过程中提高代码的质量。它们为开发人员提供了一种通用的语言,确保团队内部沟通的顺畅。当开发者熟悉并应用这些设计模式时,代码的结构变得更加清晰且易于理解。同时,设计模式帮助开发者避免重复的开发工作,快速实现某些特定功能,提高工作效率。
2025-03-16 15:44:54
1187
【贝叶斯算法】该文件是一个用于实现贝叶斯算法的 Python 脚本 贝叶斯算法基于贝叶斯定理,用于分类和预测问题
2024-06-12
【YOLO多目标识别】该Python 脚本是用于实现 YOLO(You Only Look Once)多目标识别
2024-06-12
【反向传播(BP)神经网络】该 Python 脚本包含了用于创建和训练多层前馈神经网络的关键功能
2024-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅