自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西青年·部落格

Deep rivers move in silence, shallow brooks are noisy.

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 大话设计模式C++实现-第28章-访问者模式

一、UML图二、概念访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它是你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。三、说明(1)访问者模式适用于数据结构相对稳定的系统?是的。它把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。(2)访问者模式的目的?访问者模式的目的是要把

2014-12-31 16:34:20 1488 1

原创 大话设计模式C++实现-第27章-解释器模式

一、UML图二、概念三、说明四、C++实现(1)Expression.h#ifndef FLYWEIGHT_H#define FLYWEIGHT_H#include #include #include #include //Context,此处为演奏内容类class PlayContext{private: std::string

2014-12-29 17:58:22 1657 1

原创 大话设计模式C++实现-第26章-享元模式

一、UML图二、概念享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。三、说明角色:(1)Flyweight类:它是所有具体享元类的超类或接口,通过这个接口,Flyweight可以接受并作用于外部状态。(2)ConcreteFlyweight类:继承Flyweight超类或实现Flyweight接口,并为内部状态增加存储空间。

2014-12-28 15:47:45 1446

原创 大话设计模式C++实现-第24章-职责链模式

一、UML图二、概念三、说明 四、C++实现(1)ChainOfResponsibility.h(2)Client.cpp(3)运行截图

2014-12-25 22:47:41 1332 2

原创 大话设计模式C++实现-第23章-命令模式

一、UML图二、概念命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求进行排队或记录请求日志,以及支持可撤销的操作。三、说明角色:(1)Command类:用来声明执行操作的接口。(2)ConcreteCommand类:将一个接收者对象绑定与一个动作,调用接收者相应的操作,以实现Excute。(3)

2014-12-23 19:02:00 1407

原创 typeid()的用法

#include "Command.h"#include #include //基类Aclass A{public: //虚函数 virtual A* GetClass() { return this; }};//继承于类A的子类AAclass AA:public A{public: AA* GetClass() { return this; }}

2014-12-23 16:48:17 2395

原创 大话设计模式C++实现-第22章-桥接模式

一、UML图二、概念桥接模式(Bridge):将抽象部分与它的实现部分分离,使他们都可以独立地变化。三、说明为什么叫“桥接模式”?如上所示的UML图中,有一个聚合线,像一座桥,所以叫“桥接模式”。概念解释:什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类与它的派生类用来实现自己的对象。

2014-12-23 11:42:03 1541

原创 大话设计模式C++实现-第20章-迭代器模式

一、UML图二、概念 迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。三、说明什么时候用?(1)当你需要访问一个聚集对象,而且不管这些对象时什么都需要遍历的时候,你就应该考虑用迭代器模式。(2)你需要对聚集有多种遍历时,可以考虑用迭代器模式。(3)为遍历不同的聚集结构提供如开始、下一个、是否

2014-12-23 08:56:22 1951

原创 大话设计模式C++实现-第19章-组合模式

一、UML图二、概念组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。三、说明角色:(1)Component:为组合中的对象声明接口,在适当情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component 的子部件。(2)Leaf:在组合中白哦是

2014-12-22 16:24:20 1634

原创 大话设计模式C++实现-第18章-备忘录模式

一、UML图二、概念备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。三、说明角色:(1)Originator(发起人):负责创建一个Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储

2014-12-21 23:00:08 1503

原创 大话设计模式C++实现-第17章-适配器模式

一、UML图二、概念适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。三、说明(1)在想使用一个已存在的类,但是如果他的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。(2)用了适配器模式,客户代码可以统一调用统一接口就行了,这样可以更简单,更直接,更紧凑。

2014-12-21 17:34:39 1563

原创 大话设计模式C++实现-第14章-观察者模式

一、UML图二、概念观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。三、说明角色:(1)Subject类:可以翻译为主题或者抽象通知者,一般用一个抽象类或者一个接口实现。他把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接

2014-12-21 11:59:18 1953

原创 大话设计模式C++实现-第13章-建造者模式

一、UML图二、概念建造者模式(Builder):将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。三、说明角色:(1)Builder:是为创建一个Product对象的各个部件指定的抽象接口。(2)ConcreteBuilder:是具体创建者,实现Builder接口,构造和装配各个部件。(3)Product:具体的产品角色

2014-12-18 15:15:10 1540 2

原创 大话设计模式C++实现-第12章-外观模式

一、UML图二、概念外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。三、说明Q:外观模式在什么时候使用呢?A:分为三个阶段:(1)首先,在设计初期阶段,应该要有意识的将不同的两个层分离。(2)第二,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也会产生很

2014-12-17 23:06:55 1739 1

原创 大话设计模式C++实现-第10章-模板方法模式

一、UML图二、概念模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。三、说明角色:(1)AbstractClass:是抽象类,其实也就是一个抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的框架,而逻辑的组成步骤在相应的抽象操作

2014-12-17 22:23:09 1940

原创 大话设计模式C++实现-第9章-原型模式

一、UML图二、概念原型模式(Prototype):用原型示例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。三、说明(1)原型模式实际上就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。(2)一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,有对性能是大大的提高。因为如果不用Clone,每次new,都需要执行

2014-12-17 16:41:33 2081 2

原创 大话设计模式C++实现-第7章-代理模式

一、UML图二、概念代理模式:为其他对象提供一种代理以控制对这个对象的访问。三、应用场景(1)远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。(2)虚拟代理,是根据需要创建开销很大的对象。通过他来存放实例化需要很长时间的真实对象。例如:图片加载的时候。(3)安全代理,用来控制真是对象访问时的权限。(4)智能指

2014-12-16 22:58:47 2489 1

原创 《亲爱的界面》之菲茨定律

一、定义菲茨定律:(在桌面系统中)用户能够快速点击那些较大或者比较接近于鼠标指针的目标。此类目标可能是用户想要鼠标点击的屏幕上显示的图标,或者是用户想要敲击的触摸屏上的按钮。

2014-12-11 20:38:58 1125

原创 《亲爱的界面》阅读笔记之一

1.不要打扰用户(1)如果能帮助用户做决定,就不要打扰用户。(2)如果不得不让用户自己做决定,就让用户一次性把所有决定都做完,避免让用户中途停下来做决定。(3)只在做出紧急决定是才打扰用户。2.为用户提供撤销功能(1)在用户做出某些具有潜在危险的事情之前提出警告并不会奏效,用户往往会无视这些消息,只有允许他们撤销自己的操作,才能避免发生意外。(2)如果技术不支持撤销操作,那

2014-12-11 17:20:08 1084

原创 大话设计模式C++实现-第6章-装饰模式

一、UML图二、概念装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。三、说明角色:(1)Component是定义一个对象,可以给这些对象动态地添加职责。(2)ConcreteComponent是定义了一个具体的对象,也可以给这个对象增加一些职责。(3)Decorator,装饰抽象类,继承了Component,从外类来扩展

2014-12-11 15:16:06 2622 1

原创 大话设计模式C++实现-第2章-策略模式

一、UML图二、概述策略模式:他定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。三、优点(1)策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,他可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。(2)策略模式的Strategy类曾是为Context

2014-12-10 23:29:54 2979 2

原创 大话设计模式C++实现-第3.4.5.11.22.23章-设计原则

一、单一职责原则(1)就一个类而言,应该仅有一个引起它变化的原因;(2)如果一个类承担的职责过多,就等于把这些职责耦合在了一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力二、开放封闭原则三、依赖倒转原则四、里氏代换原则五、迪米特法则

2014-12-10 17:03:35 1839

原创 大话设计模式C++实现-第21章-单例模式

一、UML图二、概念单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。[DP]通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保护它的唯一实例。这个类可以保证没有其他实例可以被创建,并且他可以提供一个访问该实例的方法。三、注意:使用单例模式,只能保证一个线程内对象不会被多次创建,而不不能保证多线程

2014-12-09 23:21:36 2002

原创 vs2010缩小MFC工程大小的方法

MFC工程文件编译运行之后的工程大小往往都是100M兆以上,下面介绍一下vs2010中缩小MFC工程大小的方法。工程文件缩小前的大小:120M。方法分为两步:(1)清理解决方案:在vs2010菜单栏点击“生成”----->“清理解决方案”。(2)在工程文件所在的文件目录下,删除数据库文件。工程文件缩小完成,完成后的大小:362KB。说明:在网上查阅资料,有提到关闭v

2014-12-08 17:32:24 3226 1

随机性测试研究

密码算法的随机性测试研究,论文详细的分析了现状,并提出了改进策略。

2013-05-03

空空如也

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

TA关注的人

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