自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2019-06-26 13:35:57 297

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

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

2019-06-25 20:44:25 285

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

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

2019-06-25 20:13:23 390

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

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

2019-06-25 00:16:24 314

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

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

2019-06-24 16:14:53 289

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

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

2019-06-22 22:05:46 342

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

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

2019-06-22 21:05:37 306

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

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

2019-06-20 19:40:42 352

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

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

2019-06-17 15:48:09 277

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

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

2019-06-16 17:13:37 306 1

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

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

2019-06-13 21:50:10 358

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

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

2019-06-12 20:10:20 264

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

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

2019-06-10 22:03:47 353

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

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

2019-06-09 15:21:55 658

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

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

2019-06-07 18:18:24 328

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

示例问题:一个项目最初使用SQLServer数据库,后来根据项目情况要使用mysql数据库,此时需要更改所有和数据库有关的接口,工作量大,如果后期又要切换成PostgreSQL数据库,则所有和数据库有关的接口又要都改一遍。有没有方法能够在切换数据库的时候,不修改这么多接口?分析:可使用这个思路来解决:确定一个厂商的工厂,就可以确定所有物品都是来源于该厂商。比如要获取耐克的鞋、裤子、上衣...

2019-06-06 12:07:01 283

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

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

2019-06-05 15:25:12 254

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

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

2019-06-02 22:00:21 334

空空如也

空空如也

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

TA关注的人

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