- 博客(12)
- 收藏
- 关注
原创 C++堆排序算法实现
堆排序算法C++实现 #include <iostream> #include <vector> using namespace std; void maxHeap(std::vector<int>& in, int i, int size); void heapBuild(std::vector<int>& vec); void heapSort(std::vector<int>& in); void swap(std
2020-09-09 10:57:20
197
原创 9、C++设计模式及实际应用-状态模式
适配器模式也是开发中应用非常广泛的一种设计模式了,可用于封装有缺陷的接口设计、统一多个类的接口设计、替换依赖的外部系统、兼容老版本接口、适配不同格式的数据等等。 下面我举一个例子来讲述适配器模式的使用 比如某个公司需要开发一款APP,这款APP有前端部门和后端部门共同完成。数月之后,前端和后端都相继完成了开发,准备要联调了,可能是由于前后端开发人员间的沟通不到位,导致很多接口对不上,并且这些 ...
2020-07-28 17:28:02
341
原创 8、C++设计模式及实际应用-观察者模式
观察者模式: 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新,消息队列、事件分发等等都使用了这种设计模式。 本节我们以一个新闻发布和订阅系统的例子来讲述观察者模式 下面代码是抽象类的定义 class Observer { public: Observer(string& name) { this->name_ = name; } string& getName() { return name_; }
2020-07-27 17:38:24
352
原创 7、C++设计模式及实际应用-抽象工厂模式
抽象工厂模式,从工厂两个字上就可以看出这种模式包含一种生产的概念在里面,我们直接从一个例子来讲解抽象模式吧。 比如说,我们现在要做一个代码编辑器,这个代码编辑器支持c++、javascript、 python等等语言,同时也支持各样的编辑器窗体布局、主题样式、字体样式。 首先我们定义抽象类,每个抽象元素里面都有一些类功能相关的抽象接口,这里为了方便浏览,没有列出来了 // 抽象元素 class Code {}; class Theme {}; class Text {}; class Layout {};
2020-07-24 15:34:26
295
原创 6、C++设计模式及实际应用-UML类图(2)
下面我们来讲解以下关联、聚合、组合关系,这三种关系相似度比较大的,所以很多时候容易混淆。本节中将用实例来讲解这三种关系,并分析这三种关系之间的区别。 关联关系 关联关系,顾名思义,就是指两个对象之间存在存在一些对应的关系。 下面我们举一个商城购物的例子,比如我们在某商城购买了一个商品,那么在该商城的后台系统中就会生成一个订单,每个订单就会对应一个用户和一个商品。这样,订单与用户、商品之间的关系就是关联关系。 代码如下: class User { // 用户信息 // ... }; class Go
2020-07-15 20:07:12
512
原创 5、C++设计模式及实际应用-UML类图(1)
UML类图,主要用于软件设计中反应类与类之间的关系,它也是学习设计模式之前必须熟悉的内容。 类之间存在以下关系: 泛化关系 实现关系 关联关系 聚合关系 组合关系 依赖关系 泛化关系 泛化关系实际就是继承,在我们第一讲里面介绍的游戏弹窗界面代码就是一个非常典型的泛化 关系,其UML类图如下: 由上图可以清晰的看出,SmallDailog、MeduimDailog、LargeDailog继承自BaseDailog,TipsDailog、WarningDailog继承自SmallDailog,FriendD
2020-07-15 10:54:22
735
原创 4、C++设计模式及实际应用-模板
模板编程也称泛型编程,是C++的一个非常重要编程模式,泛型编程能以让开发者以尽可能少的代码,实现非常非常多的功能。在一些情况下,它可以替代多态的使用,同时它比多态更加安全,并于性能也要远高于多态。 泛型编程不同于多态,泛型编程实质是在代码的编译期间由编译器自动生成模板相关的代码,而多态则是在程序执行期间进行动态绑定。 下面我们通过用泛型编程的方式重写上节教程中的图形渲染框架 class Cube { public: void draw(); }; class Sphere { public:
2020-07-14 17:47:22
247
原创 3、C++设计模式及实际应用-多态
多态,学习过面向对象开发的读者应该不会陌生,在C++里面,它可以实现父类指针调用其子类方法的效果。具体语法细节,读者可自行查看相关书籍进行学习,本节主要讲述多态在实际开发中的应用。 在我们平时的开发过程中要慎用多态,C++中,多态是通过虚函数来实现的,调用虚函数的性能消耗比调用普通成员函数大很多。 下面我们通过一个图形渲染的例子讲述一下多态的具体用法,比如我们开发一个图像渲染框架,需要实现立方体、球体和圆柱体的渲染。 在不考虑多态的情况下,简单的代码实现可以是这样 struct Cube {};
2020-07-14 16:01:01
544
原创 2、C++设计模式及实际应用-继承
关于继承和多态,它是面向对象设计思想的核心所在。它们的语法细节,很多书籍和教程上都有详细的讲解,这里就不再赘述了,本节将重点讲解继承和多态的设计思想和实际应用场景。 例如我们在开发一款手机游戏里面的弹窗界面,有用户弹窗、好友弹窗、展示弹窗、设置弹窗、提示弹窗、警告弹窗,功能如下: 用户弹窗:弹入弹出动画、中型尺寸、用户信息 好友弹窗:弹入弹出动画、中型尺寸、好友信息 展示弹窗:弹入弹出动画、大型尺寸、展示内容 设置弹窗:弹入弹出动画、大型尺寸、设置选项 提示弹窗:弹入弹出动画、小型尺寸、提示信息 警告弹窗
2020-07-14 11:26:29
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1