自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 5-观察者模式(Observer)

定义对象之间一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。文件分割程序,将大文件分割成若干个小文件分割进度条实时显示【依赖关系-通知-自动更新】/* 未使用 观察者模式 */ //MainForm1.cpp class MainForm : public Form //主窗口 {//文本框-文件路径 TextBox * txtFileNumber;

2023-04-21 20:35:34 82

原创 栈和队列 - C++

栈【stack】是限定仅在表尾进行插入或删除操作的线性表。栈又称为“后进先出”的线性表。栈顶【top】——表尾端栈底【bottom】——表头端空栈——不含元素的空表后进先出【Last In First Out】——栈的修改原则应用场景——按照保存数据时相反的顺序表来使用数据队列【queue】是只允许在表的一段进行插入,而在另一端删除元素的线性表。队列又称为“先进先出”的线性表。队尾【rear】——允许插入的一端队头【front】——允许删除的一端。

2023-04-20 18:25:38 279

原创 线性表 - C++

线性表是数据结构中的一种基本数据类型,它是由n 个数据元素组成的有限序列。表中元素个数有限表中元素具有逻辑上的顺序性,表中元素有其先后次序表中元素都是数据元素,每个元素都是单个元素除第一个元素外,每一个元素有且只有一个直接前驱元素,除了最后一个元素外,每一个元素有且只有一个直接后继元素。

2023-04-20 18:24:19 159

原创 面向对象CPP

面向对象编程(它的本质是,定义自己的数据类型,就可根据具体的问题提出解决方案。万事万物都皆为对象,对象上有其属性和行为具有相同性质的对象,我们可抽象称为类,人属于人类,车属于车类。

2023-04-19 20:09:11 71

原创 4-策略模式(Strategy)

定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。用拓展的方式,应对未来的算法层面的需求变化实例:跨国电商 - 税务计算业务变化 - 时间轴 - 增加其他国家的税务计算方式//结构化软件设计 - 面向过程 enum TaxBase {CN_Tax , US_Tax , DE_Tax , FR_Tax //业务更改 };public ://业务更改 //FR******** } /*

2023-04-19 20:06:59 34

原创 数据的存储结构

就已经确定了数组的大小,而动态数组则可以。

2023-04-18 20:46:09 6076

原创 3-模板方法(Template-Method)

定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。设计模式中最核心的特点:稳定中有变化设计模式的前提是必须有至少一个稳定点,没有稳定点,设计模式没有作用。设计模式最大的作用,就是 在变化和稳定之间 寻找隔离点,进行分离,从而来管理变化。“把变化像小兔子一样,关到小笼子里,让它在小笼子里面随便跳,而不至于把房间给污染掉”

2023-04-18 20:26:53 39

原创 2-设计模式分类

从不同角度去看待同一个问题,以上技法其实是对同一个问题的不同处理方式。创建型(Creational)模式。结构型(Structural)模式。行为型(Behavioral)模式。将对象的部分创建工作。

2023-04-18 20:20:30 49

原创 1-面向对象设计原则

子类继承自父类时,不能导致父类的方法在子类里不能调用,这会违背了替换原则。高层模块依赖低层模块,一旦低层模块有变化,则高层模块也要一并修改。高层模块的设计应该是稳定的,不能因为低层模块发生变化就变得不稳定。只给自己用的方法定义成private,只给子类用的方法定义成protected,只有给客户用的方法才定义成public。依赖倒置原则可用于检验大多数设计模式,解决依赖倒置的方法就是设计好抽象类,使其尽量稳定,以隔离变化。高层模块抽象的设计不能与具体的实现细节绑定,不能引入依赖,否则就不稳定。

2023-04-18 20:12:34 37

原创 0-设计模式简介

每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。可复用面向对象软件设计的基础》可复用:是设计模式的目标面向对象 是实现 “可复用” 具体的方法从面向对象谈起底层思维:向下,如何把握机器底层从微观理解对象构造语言构造编译转换内存模型运行时的机制抽象思维:向上,如何将我们周围的世界抽象为代码面向对象组件封装设计模式架构模式。

2023-04-18 20:11:01 58 1

原创 算法的宏观认识

算法,是为了解决某类问题而规定的一个有限长的操作序列算法,是解决问题的方法和步骤通俗定义:解题的方法和步骤狭义定义:对存储数据的操作对不同的存储结构,要完成某一个功能所执行的操作是不一样的比如,要输出数组中所有的元素的操作 和 要输出链表中所有元素的操作肯定是不一样的这说明: 算法是依附于存储结构的 不同的存储结构,所执行的算法是不一样的。广义定义:泛型(C++模板实现)广义的算法也叫泛型,无论数据是如何存储的,对该数据的操作都是一样的。广义就是站在一个很高的角度去看待数据操作。

2023-04-17 21:18:46 57 1

原创 数据结构的宏观认识

不阐述如何实现哪种具体的数据结构,而是数据结构的一些概念上的宏观认知

2023-04-16 21:13:57 127 1

原创 程序与文件

编写的代码文件是如何变成可用的程序呢?代码文件之间是如何关联的?怎么实现?大量的代码文件关联后,复杂度上升,容易error,如何debug?

2023-04-14 21:09:16 571

空空如也

空空如也

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

TA关注的人

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