自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贱贱的剑

我的心灵寄托。。。。

  • 博客(110)
  • 资源 (13)
  • 收藏
  • 关注

原创 学习人工智能

推荐一个学习人工智能的绝佳平台,“床长人工智能”,该教程从最基础的概念开始讲起,以通俗易懂的语言让你明白底层原理,绝对是学习人工智能的不二之选。随机截取一些目录链接

2021-05-04 09:40:06 251

原创 10.迭代器模式

本文介绍了迭代器模式(Iterator Pattern)的设计与实现。该模式用于访问聚合对象内容而无需暴露其内部表示,支持多种遍历方式并提供统一接口。文章以电视机和遥控器为例,展示了具体的类图设计和C++代码实现。核心组件包括迭代器接口(Iterator)、具体迭代器(Controller)、集合接口(ITelevision)和具体集合类(HaierTV)。通过createIterator()方法创建迭代器,实现first()、next()等操作来遍历电视频道,体现了迭代器模式封装遍历逻辑的特点,使客户端代

2025-07-27 18:51:17 255

原创 9. 桥接模式

摘要:本文探讨了开发跨平台日志记录工具时遇到的多维度变化问题。通过分析传统继承方式的局限性,引入了桥接模式解决方案。该模式将日志记录方式(抽象部分)与运行平台(实现部分)分离,使用对象组合替代继承,有效应对了存储形式和运行平台两个维度的变化。文中展示了C++实现代码,通过ImpLog接口定义平台实现,Log类作为抽象基类,DatabaseLog和TextFileLog作为具体日志方式,最终实现了.NET和Java平台下的不同日志记录功能。这种设计既符合开闭原则,又避免了类的单一职责被破坏的问题。

2025-07-27 17:32:43 402

原创 8. 状态模式

摘要 状态模式是一种行为设计模式,用于解决对象内部状态改变时行为变化的问题。该模式通过将状态抽象为独立类,使对象在不同状态下表现出不同行为。本文以酒店房间管理系统为例,展示了状态模式的实现:定义抽象状态类(State)和具体状态类(FreeState、BookState、CheckinState),环境类(Room)通过切换状态对象来改变行为。状态转换图清晰地描述了空闲、预定和入住三种状态间的转换逻辑。示例代码演示了房间状态管理的完整实现,验证了状态模式在简化复杂状态逻辑、提升代码可维护性方面的优势。

2025-07-27 13:14:25 386

原创 7. 命令模式

本文介绍了命令模式的设计与实现。命令模式将行为请求者与实现者解耦,使请求发送者无需关注具体执行者。通过电视机遥控器示例展示了该模式的结构:TV类作为Receiver接收命令;Command接口定义执行方法,其子类实现具体操作;Control类作为Invoker触发命令执行。代码演示了开关电视和切换频道的命令执行过程,体现了命令发出者与执行者分离的设计思想。该模式适用于需要将请求调用者和接收者解耦的场景。

2025-07-20 18:39:31 320

原创 6. 装饰器模式

摘要:本文介绍了装饰器模式的设计与实现。该模式通过装饰者动态地为被装饰对象添加功能,保持类扩展的灵活性。类图展示了Component、ConcreteComponent和Decorator的层级关系,并以汽车配件为例进行代码实现。示例中A1Car和A4Car作为被装饰者,GPS和Redar作为装饰者,通过叠加装饰器动态添加功能和价格。测试结果表明装饰后的a4汽车比未装饰的a1增加了配件描述和总价,验证了模式的动态扩展能力。

2025-07-19 22:43:54 255

原创 5.组合模式

摘要: 组合模式是一种树形结构设计模式,通过统一处理容器对象(Composite)和叶子对象(Leaf),简化客户端对复杂结构的操作。核心思想是将对象组织成树形层次,使客户端无需区分节点类型,通过抽象组件类(Component)定义统一接口。本文以目录树为例,实现Component基类、Leaf(文件)和Composite(目录)子类,展示如何递归构建和遍历层次结构。扩展部分将模式应用于菜单设计,支持嵌套菜单项。代码通过多态实现节点的增删查操作,最终输出树形结构,体现组合模式解耦结构与客户端的优势。

2025-07-19 16:33:11 488

原创 5.适配器模式

两种适配器的步骤相同。

2025-07-13 11:13:43 848

原创 4. 观察者模式

本文介绍了观察者模式在教师与学生手机号通知场景中的应用。通过两种实现方案的对比,展示了传统耦合方式的局限性,并提出了基于观察者模式的解耦方案。文章详细阐述了观察者模式的工作原理,包括注册、通知和撤销注册三个关键步骤,并提供了完整的C++代码实现。该模式通过将观察者(学生)与被观察者(教师)解耦,提高了系统的可维护性和扩展性,实现了教师手机号变更时自动通知所有学生的功能,同时支持动态添加和移除观察者。

2025-07-13 08:28:00 810

原创 3. 策略模式

本文探讨了射击游戏中武器切换需求的设计策略。首先分析了传统if-else实现的弊端,指出其违反开闭原则和依赖倒置原则。随后引入策略模式解决方案,通过定义IStrategy抽象接口,实现Bow、Knife、Cannon等具体武器类,以及Context环境类来管理策略切换。该设计支持灵活扩展新武器,避免了多重条件判断,符合面向对象设计原则。最后给出了完整的C++实现代码,包括策略设置和战斗调用示例,并讨论了策略模式的优缺点。这种设计模式特别适用于需要动态切换算法或行为的场景。

2025-07-13 00:57:56 1035

原创 1. 好的设计原则

摘要:本文介绍了面向对象设计的7大核心原则,按重要性排序依次为开闭原则、依赖倒置原则、单一职责原则、里氏替换原则、合成复用原则、迪米特法则和接口隔离原则。重点阐述了各原则的核心思想:开闭原则强调通过抽象实现扩展而非修改;依赖倒置要求针对接口编程;单一职责要求类功能聚焦;里氏替换规范继承关系;合成复用提倡组合优于继承;迪米特法则主张松耦合设计;接口隔离建议细化接口功能。通过数据库设计等实例,展示了如何运用这些原则降低耦合、提高扩展性,构建灵活可维护的软件系统。

2025-07-12 21:49:43 704

原创 使用iso制作ubuntu22.04docker镜像

【代码】使用iso制作ubuntu22.04docker镜像。

2025-07-12 18:58:15 142

原创 2.单例模式

单例模式是一种确保类只有一个实例并提供全局访问点的设计模式。它通过将构造函数私有化,并提供一个静态方法获取实例来实现。该模式适用于需要控制资源访问的场景,如日志系统或打印机管理。文中介绍了两种C++实现方式:第一种使用指针和互斥锁保证线程安全,但存在内存泄漏风险;第二种通过局部静态变量实现,自动管理内存且线程安全(C++11及以上)。两种方法都禁止拷贝构造和赋值操作,确保实例唯一性。改进后的版本更简洁安全,推荐使用局部静态变量方式实现单例模式。

2025-07-12 18:43:05 497

原创 2、开发环境优化与创建第一个插件程序

2. 命令的最后会提示是否使用vscode打开,选择打开就行。组合键,再输入相同的命令会看到弹出的框变成了自己设置的字符串。: 采用默认的终端执行编译命令会出现如下的问题。4. 接下来可以直接在默认终端里编译插件即可。: 目前的编译和运行是分开的,很不方便,尝试按。进行调试,会弹出一个新的vscode窗口。重新修改后再编译,编译完成后在新窗口按下。后,新窗口的右下角会弹出欢迎框。3. 选择下图所示的第一个即可。5. 在vscode页面输入。3. 在当前目录下会产生。7. 此时说明运行成功!

2024-12-11 22:38:29 353

原创 1、基于windows11搭建vscode插件开发环境

搭建windows11的vscode插件开发环境

2024-12-10 21:47:55 267

原创 使用Windows11搭建代理服务器

介绍了在windows11环境下使用apache搭建代理服务器的方法

2024-08-12 15:50:39 2246

原创 【算法】冒泡排序

描述了冒泡排序的思想以及代码实现

2024-07-04 23:27:05 307

原创 【算法】插入排序

介绍了两种不同的插入排序算法,以及效率对比

2024-07-03 02:26:02 1181

原创 【算法】选择排序

说明了排序算法以及代码实现

2024-07-01 23:28:21 333

原创 27. 高级特性(下)

说明了宏,高级函数等

2024-06-26 22:49:17 952

原创 26.高级特性(上)

说明不安全Rust的五种情况以及一些高级trait的用法

2024-06-25 23:17:49 1077

原创 25.模式和匹配

讲述了match,if let等模式匹配,以及模式语法,解构结构体与枚举等

2024-06-24 19:38:26 833

原创 24.面向对象编程特性

Rust避免将struct和enum称为对象,因此它们与impl是分开的;trait对象有些类似于其它语言中的对象,它们某种程度上组合了数据与行为;无法为trait对象添加数据;trait对象被专门用于抽象某些共有行为,没有其它语言的对象那么通用;定义了一个Draw train,内含方法draw;定义结构体Screen,内有公共元素components,类型为Vector,里面放了,表示Box里的元素都实现了Draw的trait;可以用泛型表示;泛型只能放入一种类型,但是。

2024-06-24 10:15:09 823

原创 23.并发

描述了并发的相关概念,进程和线程以及消息传递通信。

2024-06-23 21:42:29 682

原创 22.智能指针(下)

说明了引用计数智能、强引用与弱引用的区别和联系,以及如何避免循环引用

2024-06-23 13:37:55 828

原创 21.智能指针(上)

说明了Rust中的智能指针,Box,以及析构函数的使用

2024-06-22 14:43:30 1122

原创 20.Cargo和Crates.io

讲述了Cargo的注册,发布以及工作空间等

2024-06-22 01:38:21 1181

原创 19.闭包与迭代器(下)

讲述的迭代器的概念,迭代器的链式调用以及使用

2024-06-21 00:32:18 667

原创 18.闭包与迭代器(上)

讲述了闭包的概念及基本用法

2024-06-19 23:22:04 830

原创 17. 一个I/O项目:构建命令行程序(下)

完善命令行程序的构建--添加大小写敏感的功能和测试用例

2024-06-18 19:53:32 875

原创 16. 一个I/O项目:构建命令行程序(上)

如果new中的参数个数小于3时,会产生错误,添加代码。下面的运行结果显示实现了文件读取的功能。从 new 中返回 Result。

2024-06-18 16:04:56 745

原创 15.编写自动化测试(下)

继续完善自动化测试的编写,包括单元与集成测试的测试方法等。

2024-06-17 19:50:31 1293

原创 14.编写自动化测试(上)

说明了如何编写测试自动化测试用例

2024-06-17 16:48:20 1082

原创 13.泛型、trait和生命周期(下)

说明了rust中的生命周期语法及使用方法

2024-06-16 12:01:36 858

原创 12.泛型、trait和生命周期(中)

说明了trait和trait bound的使用

2024-06-16 12:00:57 1114

原创 11.泛型、trait和生命周期(上)

说明了Rust中泛型的定义方法

2024-06-16 11:58:05 1209

原创 10.错误处理

介绍了panic!和Result两种错误处理方式

2024-06-15 00:28:33 877

原创 9.常见集合

文章介绍了Rust中字符串、vector以及哈希map的概念及常用方法

2024-06-14 00:11:01 862

原创 8.使用包、crate和模块

简单介绍了包的使用,crate的概念以及模块化工程

2024-06-13 01:17:57 803

原创 7.枚举和模式匹配

文章说明了枚举和模式匹配的使用方法

2024-06-12 15:26:19 381

dnw-linux.tar.gz

这是Linux下的dnw传输工具,原版的不能传输入几KB的小文件,一传输就出错,现在能用了,友善之臂的tiny6410可以直接使用。有问题请加QQ:184334039,注明:dnw-linux 。 编译安装完成之后在~/.bashrc的最后一行添加 modprobe secbulk 即可。

2013-06-25

windows C语言库函数使用手册

这是Windows下的C语言开发库函数。

2012-03-02

gtk所需的15个编译包

该资源包括gtk交叉编译所需要的15个编译包,包括atk-1.19.3.tar.bz2 cairo-1.4.10.tar.gz DirectFB-1.1.1.tar.gz expat-2.0.1.tar.gz fontconfig-2.4.2.tar.gz freetype-2.3.5.tar.bz2 glib-2.12.13.tar.bz2 gtk+-2.10.14.tar.bz2 jpegsrc.v6b.tar.gz libpng-1.2.19.tar.bz2 libxml2-2.6.29.tar.gz pango-1.16.4.tar.bz2 tiff-3.7.4.tar.gz tslib-1.4.tar.gz zlib-1.2.3.tar.gz

2012-05-04

su 二进制文件过旧问题

su 二进制文件过旧 问题 更新下载 以及获得root权限

2012-05-17

jdk-1_5_0_05-linux-i586.bin

Linux下的JDK,网上的使用方法很多,具体请百度一下。

2013-10-02

freetype-2.4.10

freetype 2.4.10的tar包文件,源码文件,可以下载编译

2019-03-21

EMF、GEF、VE 适合于Eclipse 3.2.0

找了好久终于找到了,我把它们集合在一起供大家下载,我试过了,能用

2010-05-02

图片跑马灯

这是我自己做的图片平移,使用整个屏幕做画板,在屏幕上做图,出来的效果有如跑马灯,可以往左往右移,加速和减速。由于本人技术原因没有研究出来从中间向两边的,如果有人研究出来,欢迎指教。

2012-03-30

计算机等级考试三级网络技术上机题库

这是计算机等级考试三级网络技术上机题库,PDF格式,有很高的命中率。

2010-04-02

SWT/jface 帮助文档

找了好久终于找到一个能用的了,要惜是英文的

2010-05-05

嵌入式linux应用程序开发详解

嵌入式linux应用程序开发详解全套的,不是分开的。里面还包含ARM体系结构。全是PDF结构。

2012-02-03

二级C语言计算机考试机试题库

这是计算机二级考试C语言题库,有很高的命中率。用是WORD文档

2010-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除