自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (13)
  • 收藏
  • 关注

原创 设计模式之十一 迪米特法则-无熟人难办事

<br /><br />迪米特法则(LoD)(也叫最少知识原则),如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。<br />    迪米特法则的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限,即一个类包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开。<br />迪米特法则的根本思想,是强调了类之间的松耦合。在程序设计时,类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修

2010-10-30 23:02:00 770

原创 设计模式之十 模板方法模式

<br /> <br />  感觉就是父类中定义个方法的接口,让子类去具体实现,每个子类的实现方式都不一样。<br />  既然用了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该要上升到父类去,而不是让每个子类都去重复。<br />  当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。<br /> <br />模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以

2010-10-30 22:36:00 535

原创 设计模式之九 原型模式-简历复制

<br /> <br />      原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。<br />      原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。<br />     一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。<br />浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的其它对象的引用都仍然指向原来的对象。<br />深复制:把所有引用对

2010-10-30 21:23:00 766

原创 设计模式之八 工厂方法模式

     简单工厂模式的最大优点在于工厂类包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。(当添加新的方法的时候必然要改变工厂类,例如给运算工厂类的方法添加“case”判断,违背了开放-封闭原则)    工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是改工厂类的,而现在是修改客户端!    把计算器从简单工厂模式修改到工厂方法模

2010-10-29 13:52:00 578

原创 设计模式之七 代理模式

<br />    代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。<br />    按照作者所举的例子也就是GiveGift类实现虚接口,由追求者Persuit来实现这些接口,代理Proxy来使用这些接口,由客户端来做整体的调用。<br /> 还是先列举代码吧<br />代理模式的实质就是通过代理来实现实体的动作,代码的实现上只是代理和实际实体共同相关一个接口,实际实体实现接口,代理拥有访问接口的权限GiveGift类定义虚接口#pragma once#includ

2010-10-29 10:42:00 518

原创 第三章 代码的坏味道(二)

<br />3.9 Primitive Obsession(基本型别偏执)<br />    不要固执地硬是要使用基本数据类型,要习惯于使用对象,即使对象里的东西很少。<br />3.10 Switch Statements(switch 惊悚现身)<br />   问题: 大多数时候,一看到switch语句及应该考虑[多态]来替换它。<br />   解决: 首先使用Extract Method(110)将switch语句提炼到一个独立函数中,再使用Move Method(142)将它搬移到需要多态性的那

2010-10-28 13:09:00 558

原创 第三章 代码的坏味道(一)

3.1 Duplicated Code (重复的代码) 问题一:同一个class内的两个函数含有相同的表达式(expression). 解决办法:采用Extract Method(110)提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码。 问题二:两个互为兄弟(sibling)的subclasses内含相同表达式 解决办法:对两个classes都使用Extract Method(110),然后再对被提炼出来的代码使用Pull Up Method(332),将它推入s

2010-10-25 22:32:00 619

原创 设计模式之六 装饰模式

<br />装饰模式<br />  动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。<br />  装饰模式是为已有功能动态地添加更多功能的一种方式。<br />  装饰模式把每个要装饰的功能放在单独的类中,并让这个类包含它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地,按顺序地使用装饰功能包装对象了。<br /> <br />装饰模式的优点是:<br />1.把类中的装饰功能从类中搬移去除,这样可以简化原有的类。<br />2.有效地把类

2010-10-25 22:11:00 502

原创 设计模式之五—— 会修电脑不会修收音机—依赖倒转模式

<br />单一职责问题:刚才修电脑的事,显然内存坏了,不应该成为更换CPU的理由,它们各自职责是明确的;<br />开放-封闭原则:内存不够只要插槽足够久可以添加,硬盘不够可以用移动硬盘等,PC的接口是有限的,所以扩展有限,软件系统设计得好,却可以无限地扩展。<br /><br />依赖倒转原则<br />   抽象不应该依赖细节,细节应该依赖于抽象(针对接口编程,不要对实现编程)针对抽象编程而不是针对细节编程<br />依赖倒转原则<br />   A.高层模块不应该依赖低层模块。两个都应该依赖抽象。<

2010-10-25 20:36:00 1409

原创 设计模式之四——开放-封闭原则

开放-封闭原则    是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。    这个原则其实是有两个特征,一个是说“对于扩展是开放的(open for extension)”,另一个是说“对于更改是封闭的(closed for modification)”    怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新版本呢?    无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选

2010-10-25 20:09:00 602

原创 设计模式之三 拍摄UFO-单一职责原则

<br />单一职责原则:<br />  就一个类而言,应该仅有一个引起它变化的原因<br />  软件设计真正要做的许多东西,就是发现职责并把那些职责相互分离。<br />如何判断算法应该分离出类类呢?<br />  如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,此时就应该考虑类的职责分离。<br /> <br />  如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭

2010-10-25 19:52:00 606

原创 重构第二章 重构原则

1.什么是重构重构(名词):对软件内部结构的一种调整,目的是在不改变【软件之可察行为】前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构准则(手法),在不改变【软件之可察行为】前提下,调整其结构。两顶帽子:添加新功能和重构2.为何重构改进软件设计  有目的性地整理修改代码结构 消除重复代码(Duplicate Code)使软件更易被理解 助你找到臭虫  助你提高编程速度3.何时重构1)三次法则 第一次做某件事时只管去做,第二次做类似的事会产生反感,但无论如何还是做了;第三次再做类似的事,你

2010-10-24 20:19:00 676

原创 重构第一章 重构的第一个案例

这一章通过讲解租碟的案例来初步解释了重构的意义,有些问题何老师已经讲过了,比如说变量命名,分割代码等等1.1 起点  如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地那么做,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。1.2 重构的第一步(测试)  每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码简历一组可靠的测试环境。  重构之前,首先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验(self-checking)的能力。  什么是自我检验(self

2010-10-24 20:18:00 731

原创 设计模式之二 商场促销-策略模式

   策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。   策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。   当不同的行为堆砌在一个类中时,就很难避免使用条件语句来选择合适的行为。将这些行为封装在一个个独立的Strategy类中,可以在使用这些行为的类中消除条件语句。    代码写完之后,感觉它与简

2010-10-24 20:11:00 2205 1

原创 设计模式一:简单工厂模式(计算器)

2010-10-189月24号的时候开始看大话设计模式觉得非常好,当时就决定十一的时候要把23个设计模式看完,并且用C++实现一遍代码,结构十一玩了三天后面又加班,最后只是看了一遍,只写了几章的代码,然后就拖到现在,从今天开始好好写,一天一个设计模式。工厂模式从一个简单的计算器开始,一开始使用一个main函数搞定所有问题,然后业务与逻辑分离,将函数的实现写到一个函数里,到最后是把每种运算方式都写成一个类,运用工厂方式。让俺真正体会到了面向对象编程的封装,继承和多态。下面是俺写的代码。主函数// Calcul

2010-10-18 22:57:00 3654 2

原创 大话设计模式之面向对象基础

<br />A.2  类与实例<br />   对象是一个自包含的实体,用一组可识别的特性和行为来标识。 <br />   面向对象编程:Object-Oriented Programming<br />   类就是具有相同的属性和功能的对象的抽象的集合。<br />   实例,就是一个真实的对象。实例化就是创建对象的过程,使用new关键字来创建。<br />A.3  构造方法<br />    构造方法,又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void, 在new时候调用

2010-10-18 22:41:00 867

原创 今天去了ToastMaster Club

<br />   今天去了ToastMaster Club,感觉挺好的,以后还会坚持去!<br />   很久没有学习英语,本来就差,现在更不行了。从现在开始努力哦!<br />   Paul, Steve, Ares Liu,Cathy,Kevin, Selina,Han,Linda,Tina,LiuChen<br />   turkey, Thanks Given Day

2010-10-12 23:14:00 1481

QT5开发及实例

QT5开发及实例,完整的源码,可以直接运行,文档是PDF的,蛮清晰

2018-12-10

IEC104规约Server及Client实现

IEC104规约的服务器和客户端实现,遥信遥测遥调遥控都有,学习的实际项目都能用上,VC6.0直接编译运行

2016-07-26

自定义TreeListCtrl

TreeListCtrl,在ListCtrl控件中建立树形结构,能够嵌入组合框和编辑框,并且根据数据类型来检查数据的合法性,可以设置维度来直接插入一个若干维的数据 (0资源分也有好东西,我所有上传的资源都是0资源分,只是想跟大家共享而已)

2013-11-27

调试跟踪工具OllyDbg+1.09中文版

为了做DLL破解下载的这个工具,本来有更新的版本,但是找到的文档里面用的是这个版本别的版本步骤对应不上。花了10个积分,虽然是好东西,也很心疼,贡献出来大家用。

2013-02-27

IEC104规约详细讲解.ppt

花了10个积分下的,真心不划算,贡献出来大家一起学习。

2013-02-27

swiEditor相关资料

SwixEditor_User_Guide是swiEdito的用户手册,UIDesignJavaXML是一些实例操作。本来想上传软件,但是级别不够,只能传小于15M的文件 这个文章有些笔记http://blog.csdn.net/huaerge/article/details/6744528

2011-09-02

注册表监控存储设备插拔

从注册表入手实现对USB和SD卡设备插拔的监控,不依赖于窗口消息WM_DEVCHANGE

2011-05-30

Windows 下注册表项键值监控

windows下注册表项的监控,当指定注册表发生变化时给出提示

2011-05-30

wince下进程保护

包含两个程序,一个是基于MFC的对话框程序实现进程保护,另一个是进程保护的DLL,两个程序均是基于wince平台。

2011-05-30

SkinMagic界面皮肤美化源码

这段代码跟之前上传的皮肤代码效果是一样的,只是支持的皮肤少了一点点,同样是给出了具体的使用方法!

2011-01-06

程序皮肤文件,使用方法及实例

包含界面美化的皮肤文件供99个,详细介绍了使用方法,此外还附有demo程序,每种皮肤笔者都保存了效果图,大大节省了您选择皮肤的时间! 好东西大家分享,不要积分!

2011-01-06

托盘图标的制作,双击托盘图标重新打开窗口,点击托盘图标右键可以选择是打开窗口还是退出程序

源码包含托盘图标的执行文件,和一个实例程序,实现的功能如下: 运行程序,桌面右下方出现托盘图标,关闭程序窗口时窗口关闭,此时双击托盘图标重新打开窗口,点击托盘图标右键可以选择是打开窗口还是退出程序!

2010-05-27

DETOURS.rar

Detours.lib 是微软开发的一个函数库,可用于捕获系统API。我花了高分下的,免费共享出来!

2010-04-15

空空如也

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

TA关注的人

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