<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangkuiyun的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangkuiyun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangkuiyun]]></copyright><item><title><![CDATA[笔记]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/49362669</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/49362669</guid><author>wangkuiyun</author><pubDate>Fri, 23 Oct 2015 16:04:05 +0800</pubDate><description><![CDATA[阅读设计模式时，先理解里面的概念，在后续的学习中，可减少很多困难。
接口：一个对象能接受的所有操作集合称为该对象的接口。（通俗理解，public方法）
对象的类型：用来标示特定的接口。
对象的类：对象的实现，包括了成员，内部状态，操作实现。
举例：
两个对象以及其接口：Window{open，clos}，Door{clock，unclock}
如果对像BlackHouse：Door{c]]></description><category></category></item><item><title><![CDATA[笔记]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/49358481</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/49358481</guid><author>wangkuiyun</author><pubDate>Fri, 23 Oct 2015 10:51:43 +0800</pubDate><description><![CDATA[字节序
小头：将低字节作为开始，存储在开始地址
大头：将高字节作为开始，存储在开始地址
存储的基本单位是字节，所以多字节类型在存储时，会按照一个顺序拆分成一个个字节，然后存储。
例：
存储0x1234
地址  0x01  0x02
小头  34    12
大头  12    34
字节对齐
1、规则：
 1-指定对齐字节和自身中取最小的。
 2-结构体以结构体中的最大成员]]></description><category></category></item><item><title><![CDATA[申请数组内存空间时做了哪些事情]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/49329291</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/49329291</guid><author>wangkuiyun</author><pubDate>Thu, 22 Oct 2015 09:41:38 +0800</pubDate><description><![CDATA[申请数组时，除了分配申请的空间之外，还会分配一些空间存储和这块内存相关的信息
1、_CrtMemBlockHeader，放在申请的内存空间之前，包括两部分：[1]这块内存的相关信息。[2]申请内存之前连续4个字节，值为fd
typedef struct _CrtMemBlockHeader
{
// Pointer to the block allocated just before th]]></description><category></category></item><item><title><![CDATA[状态模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48028603</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48028603</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 15:38:11 +0800</pubDate><description><![CDATA[当一个对象可能有N中状态，而且每种状态下对象的行为都不一样，同时状态间的关系较为复杂时，使用状态模式。
状态模式是针对此对象每种状态定义一个类，每个类中都有此对象的指针，在每个类中处理和状态相关的动作（函数）。此对象包含这些这些状态类的指针族，同时有一个表示当前状态的指针，同时变化这个指针的值来修改当前状态对应的动作。

在非必须使用状态模式的情况下，不要使用，这个实现类太多，同时代码阅读性]]></description><category></category></item><item><title><![CDATA[访问者模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48028225</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48028225</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 15:19:10 +0800</pubDate><description><![CDATA[访问者模式比较绕。
她主要有两个东西，一个是元素，一个是访问者。
他们的关系时，元素接受访问者，访问者访问元素。
在元素接受访问者时，将访问者传递给元素。在这个函数中，访问者访问这个元素，这时将这个元素传递给访问者。

一般情况下不需要用到访问者模式。还没理解什么情况下需要用到这个模式。]]></description><category></category></item><item><title><![CDATA[职责链模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48027283</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48027283</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 14:28:47 +0800</pubDate><description><![CDATA[当一件事情需要一级一级的向下传递时，可以用职责链的方式。
又分其它几个情况
1、在这个职责链中每个节点都有相应操作，这样用职责链是最好的选择
2、在这个职责链中只有最后一个才做相应的处理，前面的节点都是起到传递和搜寻最后一个节点的作用。则此时，可以用职责链也可以用表驱动来实现。


职责链模式是将我们需要用户去一级一级的寻找处理者，变为用户找到一个处理者，然后这个处理者处理后由这个处理]]></description><category></category></item><item><title><![CDATA[迭代模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48025355</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48025355</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 11:45:21 +0800</pubDate><description><![CDATA[参考vector等]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48025113</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48025113</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 11:31:57 +0800</pubDate><description><![CDATA[当存在一对多的关系时，我们设计一个观察者，用来处理一个变化引起的相关变化动作。

设计一个观察者，观察者维护一系列对象族，这些对象族都是由相应动作需要做出变化者自己注册的。当一个变化发生时，会通知观察者这个变化，然后观察者会遍历所有对象族，通知相应对象]]></description><category></category></item><item><title><![CDATA[装饰模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48024863</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48024863</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 11:20:54 +0800</pubDate><description><![CDATA[装饰模式
对于一个已有的类，需要对其增加一些小的功能属性，同时这些功能属性和这个类本身关联性不是很强，这时使用装饰模式而不使用继承。
装饰模式即提供一个新类，这个新类由被装饰的类组合而成（被装饰类指针），同时增加装饰功能。]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48024171</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48024171</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 10:54:59 +0800</pubDate><description><![CDATA[当构建层次结构时，比如像树时。每一个节点都可以由简单节点构成，而当前这个节点又是上一个节点的简单节点。我们不想要区分这些简单节点和复杂节点。
我们可以定义一个接口类，这个接口类中包括了要使用的共有接口，然后不论简单还是复杂节点都继承这个类。
如此我们以后再使用和遍历这个树时，对待每个节点可以直接向对待这个接口类一样，不必要去区分不同的节点。]]></description><category></category></item><item><title><![CDATA[桥接模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48023789</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48023789</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 10:34:17 +0800</pubDate><description><![CDATA[当一个对象受多个因素变化影响时，可以将这些因素抽象出来（也可以留一个作为主类）。对每个因素抽象一个抽象类，然后在一个主类中，对每个抽象类拥有一个指针。通过这个指针来变化没个因素。
比如，一支笔（CPen）有尺寸和颜色两个因素，我们可以把颜色抽象出来成（CColor），然后在CPen中有一个CColor的指针pColor，这样当颜色因素变动时，我们只需要变化pColor就可以了。

本质上是，]]></description><category></category></item><item><title><![CDATA[Adapter]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48022825</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48022825</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 09:52:08 +0800</pubDate><description><![CDATA[类适配：适配类去继承要适配的类，提供目标接口函数，在目标接口函数调用现有函数。就是对要适配的类进行一次封装
对象适配：适配类有一个要适配类对象，提供目标接口函数，在目标接口函数通过适配对象调用其现有函数。就是对其一次组合封装。


适配是通常是对几个类的现在有函数组合使用。]]></description><category></category></item><item><title><![CDATA[原型模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48022617</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48022617</guid><author>wangkuiyun</author><pubDate>Thu, 27 Aug 2015 09:34:22 +0800</pubDate><description><![CDATA[由一个对象克隆]]></description><category></category></item><item><title><![CDATA[模板模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48005567</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48005567</guid><author>wangkuiyun</author><pubDate>Wed, 26 Aug 2015 16:41:39 +0800</pubDate><description><![CDATA[又叫模板方法模式，在一个方法中定义一个算法的骨架，而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下，重新定义算法中的某些步骤。
在一个方法中定义一个算法的骨架：在父类中提取所有子类的公共部分，而这些公共部分中的某一个步骤在子类中不一样时，想这部分抽取成一个虚函数。
而将一些步骤延迟到子类中：上面提取的虚函数在子类中具体实现。]]></description><category></category></item><item><title><![CDATA[Builder]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48004297</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48004297</guid><author>wangkuiyun</author><pubDate>Wed, 26 Aug 2015 15:40:49 +0800</pubDate><description><![CDATA[主要有两部分组成
Builder：提供各个小组件的生产方法
Director：用Builder提供的组件安装一定的组装逻辑，组装成产品]]></description><category></category></item><item><title><![CDATA[生成模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48003937</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48003937</guid><author>wangkuiyun</author><pubDate>Wed, 26 Aug 2015 15:23:19 +0800</pubDate><description><![CDATA[生成模式：
Factory，着重于生产一系列产品，这些产品都有相同的功能，但是每个功能的做法和具体实现不一样。
Builder，着重于生产一系列产品，这些产品都可以由“一堆零件”中的部分零件组合而成。]]></description><category></category></item><item><title><![CDATA[工厂模式]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/48000795</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/48000795</guid><author>wangkuiyun</author><pubDate>Wed, 26 Aug 2015 11:22:28 +0800</pubDate><description><![CDATA[述求：

我要使用一个东西：
1、我只需要关心
     1.1我从哪里拿到它
     1.2我怎么使用它
2、其它诸如怎么生产的，我使用时它内部怎样工作的我都不关心


实现

我要使用一个东西：
1、我需要看到
     1.1一个生产工厂，有一个生产次东西的接口
     1.2一个接口类，里面有我要使用的每个方法函数
2、具体怎么生产放到子类工厂实现，使用东]]></description><category></category></item><item><title><![CDATA[http://guides.ruby-china.org/]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/43883237</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/43883237</guid><author>wangkuiyun</author><pubDate>Thu, 19 Feb 2015 19:11:51 +0800</pubDate><description><![CDATA[http://guides.ruby-china.org/]]></description><category></category></item><item><title><![CDATA[应用程序无法启动，因为应用程序的并行配置不正确。]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/43194855</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/43194855</guid><author>wangkuiyun</author><pubDate>Tue, 27 Jan 2015 14:57:10 +0800</pubDate><description><![CDATA[问题：执行VC的exe程序，报错“应用程序无法启动，因为应用程序的并行配置不正确。有关详细信息，请参阅应用程序事件日志，或使用命令行sxstrace.exe工具。” 解决方法：方法一：在类似C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件]]></description><category></category></item><item><title><![CDATA[应用程序无法启动，因为应用程序的并行配置不正确。]]></title><link>https://blog.youkuaiyun.com/wangkuiyun/article/details/43194811</link><guid>https://blog.youkuaiyun.com/wangkuiyun/article/details/43194811</guid><author>wangkuiyun</author><pubDate>Tue, 27 Jan 2015 14:54:39 +0800</pubDate><description><![CDATA[问题：执行VC的exe程序，报错“应用程序无法启动，因为应用程序的并行配置不正确。有关详细信息，请参阅应用程序事件日志，或使用命令行sxstrace.exe工具。”

解决方法：
方法一：
在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT]]></description><category></category></item></channel></rss>