设计模式(C++实现)(十七)——原型模式

示例问题: 实现一个类的时候,通常会重载运算符“=”,然后可以将同一个类的对象用“=”赋值给另外一个对象。这实际上这就是原型模式的一种应用了(原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。)下面就阐述下重载运算符“=”(使用原型模式)带来的好处。 未重载运算符“=”...

2019-06-26 13:35:57

阅读数 40

评论数 0

设计模式(C++实现)(七)——迭代器模式

示例问题 STL的里面迭代器已经实现了vector、list、map等容易的迭代访问。同样的问题,一个聚集类对象,顺序的去访问其中的各个元素,而又不暴露该对象的内部表示,就是迭代器模式了。用下面的这个示例来体会下迭代器模式的思想。 分析 无 解决方案 Iterator.h #incl...

2019-06-25 20:44:25

阅读数 39

评论数 0

设计模式(C++实现)(二十)——命令模式

示例问题: 在软件开发这个行业,有一个重要的职位——项目经理,这个人对内负责项目及项目团队的管理,对外负责和产品经理、领导等的沟通。项目经理对外沟通获得所有的需求,记录需求内容,撤销需求(当产品经理或者领导觉得某条需求不妥时),当需求整理到可以做产品的时候,会将任务分配给程序员去开发。编程描述上...

2019-06-25 20:13:23

阅读数 38

评论数 0

设计模式(C++实现)(九)——状态模式

示例问题: 篮球运动员在比赛的时候,会因为体力、情绪等影响竞技状态。比如,刚上场的时候,体力充沛、动作灵活、投篮神准;打了8分钟过后,身体疲惫、动作变慢;下场休息3分钟并喝了一瓶红牛过后,体力恢复、恢复了运动能力和投篮手感;最后决胜3分钟,比分犬牙交错,肌肉紧张、身体匹配、精神兴奋。编写程序,描...

2019-06-25 00:16:24

阅读数 39

评论数 0

设计模式(C++实现)(二十三)——享元模式

示例问题: 一个制造杯子的厂商,主要生产大、中、小圆柱形杯子(这3种规格的杯子上印有各种各样的文字),以及特殊造型杯子1,特殊造型杯子2。现需要定制模具来生产杯子,用代码解决该问题。 分析: 由于大、中、小圆柱形杯子上印有成千上万种文字,不可能为印有每一种文字的杯子都制造一个模具。只有制造好...

2019-06-24 16:14:53

阅读数 37

评论数 0

设计模式(C++实现)(二十二)——中介者模式

示例问题: windows的消息机制,对于在Windows下做开发的人员来说,可以说是必备的知识。即键盘、鼠标、应用程序、应用程序窗口之前的消息通信,均通过Windows操作系统的消息队列、消息循环等完成,编写示例程序,描述应用程序窗口之间通过Windows操作系统完成相互通讯的过程。 分析:...

2019-06-22 22:05:46

阅读数 39

评论数 0

设计模式(C++实现)(二十四)——解释器模式

示例问题: 编写示例程序,解析json格式数据。 分析: 像我们程序员日常使用的json解析、正则表达式、更甚者编译器编译代码,这些其实都是一种制定了规则,将一些符号进行翻译,解释成特定的功能,其实这些都用了解释器模式的思想。 解决方案: json数据示例 { "ID&q...

2019-06-22 21:05:37

阅读数 41

评论数 0

设计模式(C++实现)(十五)——桥接模式

示例问题: 在智能手机发展起来之前,诺基亚、摩托罗拉等传统手机都没有统一的操作系统,他们的软件各自独立。如需增加MP3功能、通讯录功能、短信功能等都需要在各自的手机品牌上分别实现。这种情况,该如何设计代码来描述。注意:品牌和手机软件的功能都可能会随时增加。 分析: 手机品牌种类和软件种类都很...

2019-06-20 19:40:42

阅读数 38

评论数 0

设计模式(C++实现)(二十五)——组合模式

示例问题: 一家总部在北京的大型公司,在全国几大城市设有分公司,比如上海设有华东区分部、在成都设有西南区分部,然后在一些省会城市还设有办事处,比如西南区的重庆办事处、贵阳办事处。无论是在北京总部,还是在成都西南区分部、重庆办事处等都有财务部、技术部等。总部、分部、办事处存在隶属关系,是一种树状结...

2019-06-17 15:48:09

阅读数 38

评论数 0

设计模式(C++实现)(二十一)——职责链模式

示例问题: 软件在运行时出了问题,需要解决的时候,是不是会出现下述这种很头痛的情况。比如,前端网页无法加载显示图片了,这个问题去找前端的同事处理,前端的同事看了下,说不是他的问题,是中间件传输过来的数据有问题;又找中间件的同事去看,中间件的同事说,是后端java那块发送过来的数据有问题;又去找j...

2019-06-16 17:13:37

阅读数 41

评论数 0

设计模式(C++实现)(十九)——访问者模式

示例问题: 对于应届毕业生找工作是去大公司还是去小公司的问题,网上有诸多说法。比如,管理制度和规章制度方面,小公司不是很健全,大公司比较健全;综合能力提升方面,小公司人少,要做的事多,对综合能力提升较快,大公司则专注某一个模块,综合能力锻炼不是太多,但可以把这个模块做精做细;职位上升方面,小公司...

2019-06-13 21:50:10

阅读数 50

评论数 0

设计模式(C++实现)(十八)——外观模式

示例问题: 有三个子系统,客户程序需要使用这三个子系统的接口,而无需考虑子系统内部的实现。 分析: 这是不是我们平时编程中常用到的一种方法,将一系列问题封装成一个子系统,然后提供子系统的接口给其他程序调用。其实这种思维就是外观模式的设计思维。 解决方案: Facade.h 该文件中CC...

2019-06-12 20:10:20

阅读数 46

评论数 0

设计模式(C++实现)(四)——工厂方法模式

该篇承接上一篇,简单工厂模式。同样的问题,工厂方法模式又会如何处理,会带来何种好处? 示例问题: 输入两个数和运算符号,得到结果? 分析: 在该问题,最开始运算符号,只有“+”,“-”,“*”,“/”,可是随着运算符的增加,该如何扩展程序? 解决方案: Operation.h 运算操...

2019-06-10 22:03:47

阅读数 47

评论数 0

Python数据分析与挖掘实战(1)——概要分析

数据挖掘的基本任务 数据挖掘的基本任务包括利用分类和预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提升企业的竞争力。 数据挖掘建模过程 1)定义挖掘目标 针对具体的数据挖掘应用需求,首先要明确本次的挖掘目标是什么?系统完成后达到什么样...

2019-06-09 15:21:55

阅读数 45

评论数 0

设计模式(C++实现)(十四)——适配器模式

示例问题: 早期代码的一些功能在使用很有价值,在不满足现有代码的接口要求,该如何处理? 分析: 用现有代码的接口将早期代码的功能封装起来。 解决方案: Adapter.h 在文件中,实现了目标类Ctarget(含通用接口),老的类COldClass(需要被适配成通用的接口),适配器类C...

2019-06-07 18:18:24

阅读数 41

评论数 0

设计模式(C++实现)(十三)——抽象工厂模式

示例问题: 一个项目最初使用SQLServer数据库,后来根据项目情况要使用mysql数据库,此时需要更改所有和数据库有关的接口,工作量大,如果后期又要切换成PostgreSQL数据库,则所有和数据库有关的接口又要都改一遍。有没有方法能够在切换数据库的时候,不修改这么多接口? 分析: 可使用...

2019-06-06 12:07:01

阅读数 44

评论数 0

设计模式(C++实现)(十二)——观察者模式

示例问题: 当一个对象发生改变,需要同时改变其他很多对象的时候,如何让着对个对象同时监听一个对象? 分析: 将所有待改变的对象抽象一个通用的类和方法,作为基类的观察者。一个对象改变的时候去通知所有的观察者(执行基类观察者的抽象方法) 解决方案: Observer.h 该文件实现了观察者...

2019-06-05 15:25:12

阅读数 39

评论数 0

设计模式(C++实现)(十一)——建造者模式

示例问题: 解决一个问题的步骤及顺序都相同,但是每一个步骤所用的方法可能不同。设计一种模式解决该问题 分析: 要保证每个步骤都实现,且顺序固定。可灵活变换步骤的实现方法。这种模式要注意固定步骤及顺序,做到避免调用者去使用每个步骤而导致出错(遗漏步骤,或者弄错顺序)。 解决方案: Buil...

2019-06-02 22:00:21

阅读数 44

评论数 0

设计模式(C++实现)(十)——备忘录模式

示例问题: 类似于虚拟机的快照功能,编写一个能够记录对象运行过程中状态的功能,用以日后恢复某种状态。 分析: 能够保存不同阶段的状态,并用以恢复。不能对调用程序暴露备份的细节。 解决方案: MyClass.h 实现了需要备忘的类CMyClass(主要使用的类),备忘录类CMemento...

2019-05-29 14:41:44

阅读数 43

评论数 0

二叉树(五)——B+树

定义及特性: B+树是基于B-树的一种变体,有着比B-树更高的查询性能。 除了具备B-树的特性外,B+树也具备一些新的特性: 一个m阶的B+树具有如下几个特征: 1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。 2...

2019-05-28 19:45:19

阅读数 37

评论数 0

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