自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (15)
  • 收藏
  • 关注

原创 Windows下Android开发环境的搭建

网上有很多环境搭建的文档,这里我只记录下几个需要注意的地方,方便自己参考。一、先介绍下Android开发环境需要哪些软件:1、  JDK;2、  Eclipse;3、  ADT;4、  Android SDK。 二、注意事项1、JDK的安装和别的W

2011-08-31 10:20:04 1128

原创 后记:

后记:差不多一个礼拜的时间,把《COM技术内幕》看了一遍,记得08年也这么干过的,可当时没有做笔记,所以这次看的时候,好多都没有印象了,感觉像第一次看一样。还真是好记性不如烂笔头,何况我还不是好记性。所以这次看就做了一下前面的笔记,前面6章的笔记有转载网友的内容,可不知道原创

2011-08-29 17:16:25 638

原创 第13章 一个完整的例子

第13章 一个完整的例子这章没有笔记,在网上找到了本章的代码,折腾来折腾去也没折腾好。

2011-08-29 17:16:11 488

原创 第12章 多线程

第12章 多线程1、COM并没有定义新的线程和进程模型,而是直接使用了Win32线程。COM也没有它自己的同步源于。COM中线程的创建和同步,使用的都是常规的Win32 API。2、Win32线程有两种不同类型的线程:用户界面线程和工作线程。3、COM线程也有两种:套

2011-08-29 17:15:56 497

原创 第11章 调度接口与自动化

第11章 调度接口与自动化1、自动化是建立在COM基础上的。2、一个自动化服务器实际上就是一个实现了IDispatch接口的COM组件。3、一个自动化控制器则是一个通过IDispatch接口同自动化服务器进行通信的COM客户。自动化控制器不会直接调用自动化服务器实

2011-08-29 17:15:35 951

原创 第10章 EXE中的服务器

第10章 EXE中的服务器1、  对于跨越进程边界的接口,我们需要考虑如下一些条件:(1)       一个进程需要能够调用另外一个进程中的函数。(2)       一个进程需要能够将数据传递给另外一个进程。(3)       客户无需关心它所访问的服务器是进程内

2011-08-29 17:15:14 989

原创 第9章 编程工作的简化

第9章 编程工作的简化1、客户端的简化:可使用智能接口指针和C++包装类。2、智能接口指针:像常规接口指针一样访问组件,将引用计数等细节隐藏起来,并且当程序的执行离开了智能接口指针的作用于之后,相应的接口将被释放掉。不适合封装某个接口或接口集。智能接口指针同组件的聚合类似

2011-08-29 17:14:43 472

原创 第8章 组件复用:包容与聚合

第8章 组件复用:包容与聚合1、实现继承:指类继承其基类的代码或实现。2、接口继承:指类继承其基类的类型或接口。3、COM不支持实现继承,但COM支持接口继承。因为对于实现继承,当基类的实现被修改之后,派生类将无法正常运行而必须被修改,为了保证对组件的修改不会影响应用

2011-08-29 17:14:25 827

原创 第7章 类厂

第7章 类厂1、类厂实际上就是一个带有能够创建其他组件的组件。引入类厂的原因是CoCreateInstance函数的局限性:CocreateInstance创建组件的过程是,传递给它一个CLSID,然后它创建相应的组件,并返回指向所请求的接口的指针。大所数情况下,CoCr

2011-08-29 17:14:08 1662

原创 第6章 关于HRESULT、GUID、注册表及其他细节

第6章 关于HRESULT、GUID、注册表及其他细节1、HRESULT值的结构:                                         |  |       15bits设备代码     |       16bits返回代码

2011-08-29 17:13:44 881

原创 第5章 动态链接

第5章 动态链接1、从DLL中输出函数:用extern "c"标记。2、在使用VC时,可以用DUMPBIN。EXE来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin -exports Cmpnt1.dll3、装载DLL:LoadLibrary以被装

2011-08-29 17:13:21 425

原创 第4章 引用计数

第4章 引用计数1、生命期控制IUnknown的另外两个成员函数AddRef和Release的作用就是给客户提供一种让它指示何时处理完一个接口的手段。2、AddRef和Release实现的是一种名为引用计数的内存管理技术。引用计数是使组件能够自己将自己删除的最简单

2011-08-29 17:12:55 561

原创 第3章 QueryInterface函数

第3章 QueryInterface函数1、接口查询:客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。IUnknown接口的定义包含在Win32 SDK中的UNKNOWN.H头文件中。inter

2011-08-29 17:12:34 713

原创 第2章 接口

第2章 接口1、在COM中接口就是一切。(1)接口可以保护系统免首外界变化的影响。(2)接口可以使客户用同样的方式来处理不同的组件。2、(1)COM接口在C++中是用纯抽象基类实现的。   (2)一个COM组件可以提供多个接口。   (3)一个C++类可以

2011-08-29 17:12:13 438

原创 第1章 组件

第1章 组件1、COM,即组件对象模型,是关于如何建立组件以及如何通过组件建构应用程序的一个规范。2、组件的优点:应用程序可随时间的流逝而发展变化;定制应用程序;组件库;分布式组件。3、对组件的需求:组件必须动态连接;必须隐藏其内部实现细节。4、COM组件是以Wi

2011-08-29 17:11:47 485

原创 为人夫一周年纪念

2011-08-18 14:27:23 1139

转载 最全的编码总结笔记

1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个

2011-08-18 14:07:08 424

原创 设计部新职员到岗--网上转来的

设计部新职员到岗老板:万分欢迎,没有你我们的公司肯定大不一样!职员:如果工作太累,搞不好我会辞职的老板:放心,我不会让这样的事情发生的!职员:我双休日可以休息吗?老板:当然了!这是底线!职员:平时会天天加班到凌晨吗?老板:不可能,谁告诉你的?职

2011-08-17 16:26:39 1178

原创 25.解释器模式--Interpreter

Interpreter模式:Interpreter模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。Interpreter模式需要解决的的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。Interpreter模式可以很

2011-08-17 14:29:35 527

原创 24.迭代器模式--Iterator

Iterator模式:Iterator模式太常见了,在使用STL中就免不了要使用迭代器。Iterator提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。当需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式。Iterator模式分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可以让外部代码透

2011-08-17 13:51:32 589

原创 23.职责链模式--Chain of Responsibility

Chain of Responsibility模式:Chain of Responsibility模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。当客户提交一个请求时,请求时沿链传递直至有一个ConcreteHandler对象负责处理它。这就使得接收者和发送者都没有对方的明确信息,且链中的对

2011-08-17 13:33:58 482

原创 22.访问者模式--Visitor

Visitor模式:Visitor模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。Visitor模式将有关的行为集中到一个访问者对象中,即将更新(变更)封装到一个类中(访问操作),并由待更改类提供一个接收接口。Visitor模式的目的是要把处理从数据结构分离出来。很多系统更可以按照算法和数据结构分开,如果这样的系统由比较稳定的数

2011-08-15 17:35:58 538

原创 21.命令模式--Command

Command模式:Command模式将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。命令模式的优点:第一、他能叫容易的设计一个命令队列;第二、在需要的情况下,可以较容易的将命令记入日志;第三、它允许接收请求的一方决定是否要否决请求;第四、可以容易的实现对请求的撤销和重做;第五、由于加进新的命令具体类不影响其他类,因此增加

2011-08-15 15:03:48 607

原创 20.中介模式--Mediator

Mediator模式:Mediator模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要现实地相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。Mediator模式典型的结构图为: Mediator模式的实现代码如下://Mediator.h#ifndef _MEDIATOR_H_#define _MEDIATOR_H_class Colle

2011-08-15 13:45:06 477

原创 19.备忘录模式--Memento

Memento模式:Memento模式在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象回复到原先保存的状态。因为Memento模式把要保存的细节封装在Memento中了,需要更改保存的细节也不用影响客户端。Memento模式比较适合用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,可以根据保存的Me

2011-08-15 11:15:28 593

原创 18.观察者模式--Observer

Observer模式:Observer模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。Observer的一个实例Model/View/Control(MVC)结构在系统开发架构设计中有着很

2011-08-15 10:39:39 724 1

原创 17.状态模式--State

State模式:State模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来好像是改变了其类。State模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断很简单,那就没必要使用State模式了。State模式的好处是将与特定状态相关的行为局部化,并且将不同状态的

2011-08-10 14:56:19 465

原创 16.策略模式--Strategy

Strategy模式:Strategy模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。另外,策略模式简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。Strategy模式和Template模式要解决的问题是相同(类似)的,都是为了给业务逻辑(算法)具体实现和抽象接口之间的解耦。Strategy模式将逻辑(算法)封装

2011-08-10 11:16:27 464

原创 15.模板模式--Template

Template模式:Template模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。我们既然是用了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该要上升到父类去,而不是让每个子类都去重复。Template模式实际上就是利用面向对象中多态的概念实现算法实现细节和高层接口的松耦合。可以看到

2011-08-10 10:52:49 447

原创 14.代理模式--Proxy

Proxy模式:Proxy模式为其他对象提供一种代理以控制对这个对象的访问。Proxy一般分为三种:1. 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。2. 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。比如打开网页时,里面有很多文字和图片,但还是可以很快打开它,先看到的是文字,图片却是一张

2011-08-09 16:43:35 590

原创 13.外观模式--Facade

Facade模式:Facade模式为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。Facade模式在什么时候使用最好呢?这要分三个阶段来说,首先,在设计初期阶段,应该要有意识的将不同的层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立Facade,这样可以为复杂的子系统提供一个简单的接口

2011-08-09 14:22:33 497

原创 12.轻量模式--Flyweight

Flyweight模式(又叫享元模式):Flyweight模式运用共享技术有效地支持大量细粒度的对象。在Flyweight模式中,在享元对象内部并且不会随环境改变而改变的共享部分,可以称为是享元对象的内部状态,而随环境改变而改变的、不可以共享的状态就是外部状态了。享元模式可以避免大量非常相类似的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基

2011-08-09 11:28:46 651

原创 11.组合模式--Composite

Composite模式:Composite模式将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。在Composite模式中,基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断递归下去,客户代码中,任何使用到基本对象的地方都可以使用组合对象了。当需求中是体现部分与整体层次的结构时,以及希望用户可以忽略组合对象与单

2011-08-09 09:45:55 608

原创 VC6link卡死解决办法

VC6在编译的时候,linking.....,一直就这样link下去,只能在任务管理器中强行退出VC6再重新打开,不过重新打开后问题依旧,实在让人恼火。网上传说这是VC6的bug,解决vc6卡死的办法就是打上官方的原版VC6sp6补丁。我试着下载安装后,果然VC6不再卡死了,记录一下地址做备忘。下载地址如下:请看清你需要的是中文还是英文英文版地址:http://download.m

2011-08-04 11:29:57 959

原创 10.装饰模式--Decorator

Decorator模式:Decorator模式动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。在OO设计和开发过程,可能会经常遇到以下的情况:我们需要为一个已经定义好的类添加新的职责(操作),通常的情况我们会给定义一个新类继承自定义好的类,这样会带来一个问题,新加的代码通常加入了新的字段,新的方法或新的逻辑,从而增加了类的复杂度,而些新加入的东西仅仅是为了满

2011-08-03 14:56:28 513

原创 09.适配器模式--Adapter

Adapter模式:Adapter模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个借口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。通常在双方都不太容易修改的时候再使用适配器

2011-08-03 09:10:58 525

原创 08.桥接模式--Bridge

Bridge模式:Bridge模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。比如手机既可以按照品牌来分类,也可以按照功能来分类。再通俗点“将抽象部分与它的实现部分分离”就是现实系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少它们之间的耦

2011-08-01 09:19:25 1052

OCMock资源文件

OCMock资源文件,从官网下载的,方便以后使用。

2013-06-17

GHUnit测试框架

GHUnit 测试框架,从官网下载下来的,上传以备不时之需。

2013-06-15

OperationTest.zip

OperationTest.zip,关于Operation对象和Operation Queue的使用示例。

2013-04-08

imagegcd实例源码

imagegcd示例源码,GCD实战2:资源竞争

2013-03-31

gcdtest1示例源码

GCD的示例源码,使用串行队列实现简单的预加载

2013-03-31

iOS 消息推送(iOS 工程源码)

iOS 消息推送(iOS 工程源码),简单的实现了iOS的消息推送功能。

2013-02-17

iOS触摸和简单实现

最简单的iOS触摸实现示例工程源码。有一个视图,视图中有一个可以拖动位置的按钮。

2013-02-06

Core Data 示例源码 操作xml归档

Core Data 示例源码 操作xml归档 是一个基于OS X的工程。

2013-02-06

CoreDataTest

Core Data 示例源码 简单的实现了Core Data对sqlite的写入,删除,读写等功能,有详细的代码注释。

2013-02-05

iOS 消息推送服务器(OS X工程源码)

iOS 消息推送服务器(OS X工程源码),只需填写你的deviceToken和.cer,并添加.cer资源到工程,然后运行即可发送推送消息。

2013-02-04

C语言实现排序算法汇总

几种排序算法的C语言实现源码,集中在一个VC工程中。

2011-10-02

COM 技术内幕--VC6.0工程源码

《COM技术内幕》的VC6.0工程源码。随书源码是用makefile编译的,在学习本书的过程中我将其改成了可以用VC编译的工程,方便源码阅读和学习。

2011-10-02

Android 中文教程

Android 中文教程 由Android帮助文档翻译过来

2010-07-25

搜索引擎lucene学习资料

本资源有三个内容: 电子书《搜索引擎--原理、技术与系统》 和两个网友的lucene学习分析资源。

2010-07-01

精通Windows Socket网络编程源码

精通Windows Scoket网络编程--基于VC6.0实现源码。 对于每种socket IO模型都有一个完整的实例,有参考价值。

2010-06-06

空空如也

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

TA关注的人

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