自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (4)
  • 问答 (3)
  • 收藏
  • 关注

原创 面向对象设计模式学习笔记十装饰模式

为什么需要装饰模式? 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”, 由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展 功能的组合)会导致更多子类的膨胀。 举例: //业务操作 class Stream{ public: virtual char Read(int number)=0; vir...

2019-02-24 21:19:30 167

原创 面向对象设计模式学习笔记九中介者模式

为什么需要中介者模式? 在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维护一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。 在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互对象间的紧耦合引用关系,从而更好地抵御变化。 什么是中介者模式? 用一个中介对象来封装(变化)一系列的对象交互。中介者使各对象不需要显示...

2019-02-24 16:44:32 158

原创 面向对象设计模式学习笔记八适配器模式

为什么需要适配器模式? 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 在实际项目中,经常需要迁移老的类库,适应新的接口,这也是适配器模式的主要职责之一。 什么是适配器模式? 将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类...

2019-02-24 15:54:21 212

翻译 使用win-VS开发调试Linux上的C/C++代码

本教程介绍如何使用VisualGDB CMake项目系统开发物理上位于Linux机器上的项目,使用Visual Studio和VisualGDB。与需要在Windows端下载源代码和标头或使用难以维护的共享文件夹的常规VisualGDB项目不同,直接访问的项目允许Visual Studio直接编辑Linux机器上的文件,始终确保您使用的是最新版本的文件。 在开始之前,请安装VisualGDB 5...

2019-02-17 21:42:20 815

原创 面向对象设计模式学习笔记七Prototype原型模式

为什么需要原型模式 在软件系统中,经常面临着某些结构复杂的对象的创建工作;由于需求变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随需求改变而改变? 原型模式与工厂模式区别: 原型与工厂都是解决绕开new,来避免对象创建(new)过程 中所导致的...

2019-02-17 20:59:09 182

原创 面向对象设计模式学习笔记六抽象工厂

为什么需要抽象工厂模式? 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工 作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一 种“封装机制”来避免客户程序和这种“多系列具体对象创建工作” 的紧耦合? 举例说明: 数据库操作>按照工厂模式,我们很容易得到以下代码: //数据库访问有关的基类 class...

2019-02-11 12:39:57 178

原创 面向对象设计模式学习笔记五工厂模式

为什么需要工厂模式? 在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“具体对象创建工作”的紧耦合? 举例说明 //文件分割器 class ISplitter{ public: virtual void split()=0; virt...

2019-02-11 10:34:44 202

原创 面向对象设计模式学习笔记四策略模式

为什么需要策略模式 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。   举例说明 税法计算案例: 程序员要有一个时间轴的概念,不能静态的看待问题。 如果增加对法国的税法,则需要更改代码,重新编译、部署 违背了开放封闭原则:对更改封闭,对扩展开放 enum TaxBase...

2019-02-07 14:05:26 215

原创 面向对象设计模式学习笔记三State模式

为什么需要State模式? 1、在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定? 2、在软件构建过程中,某些对象的状态如果改变,其行为也会随之变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。 3、如何在运行时根据对象的状态类透明的更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合? 举例说明: //...

2019-02-07 12:56:59 279

原创 面向对象设计模式学习笔记二Composite模式

为什么需要Composite设计模式? 如果客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户端的频繁变化,带来了代码的维护性、扩展性等弊端。 什么是Composite设计模式? 常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来...

2019-02-04 14:27:34 283

原创 面向对象设计模式学习笔记一概述

面向对象8大设计原则: 依赖倒置原则( DIP):高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定) ;抽象(稳定)不应该依赖于实现细节(变化) ,实现细节应该依赖于抽象(稳定)。 开放封闭原则( OCP):对扩展开放,对更改封闭; 类模块应该是可扩展的,但是不可修改。 单一职责原则( SRP): 一个类应该仅有一个引起它变化的原因;变化的方向隐含类的职责。 Lis...

2019-02-03 12:37:10 242

原创 为什么需要设计模式?

我们知道,现代软件开发越来越大型化、越来越复杂、需求变化越来越频繁。 建筑商从来不会去想给一栋已建好的100层高的楼房底下再新修一个小地下室——这样做花费极大而且注定要失败。然而令人惊奇的是,软件系统的用户在要求作出类似改变时却不会仔细考虑,而且他们认为这只是需要简单编程的事。 软件设计复杂的根本原因 •客户需求的变化 •技术平台的变化 •开发团队的变化 •市场环境的变化 如上种种的...

2019-02-03 11:27:36 407

linux多线程入门资料精选.zip

精选linux多线程开发资料,是linux多线程开发入门必备资料,从网络编程到多线程技术都有详细介绍

2019-12-08

QTWinmigrate

QT提供的与的交互框架

2017-06-27

内存泄漏检测

安装本资源在VS安装目录下,在程序中最开头#include"vld.h",用来检测内存泄漏。

2017-05-18

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

TA关注的人

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