﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-jetty2k-kyj</title><link>http://www.cppblog.com/jetty2k-kyj/</link><description>无名</description><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 20:28:14 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 20:28:14 GMT</pubDate><ttl>60</ttl><item><title>续 一些VC经验 (终于找到粘附件的地方了，这下下载方便了)</title><link>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/10/109339.html</link><dc:creator>郑晓源</dc:creator><author>郑晓源</author><pubDate>Wed, 10 Mar 2010 03:02:00 GMT</pubDate><guid>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/10/109339.html</guid><wfw:comment>http://www.cppblog.com/jetty2k-kyj/comments/109339.html</wfw:comment><comments>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/10/109339.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/jetty2k-kyj/comments/commentRss/109339.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jetty2k-kyj/services/trackbacks/109339.html</trackback:ping><description><![CDATA[续 一些VC经验 (终于找到粘附件的地方了，这下下载方便了)&nbsp; <br>如果下不了，请直接邮我 <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#116;&#116;&#121;&#50;&#107;&#95;&#107;&#121;&#106;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">jetty2k_kyj@163.com</a>&nbsp;，来信必复。<br>欢迎交流，共同进步。<br>点击下载( rar[txts] )：<a href="http://www.cppblog.com/Files/jetty2k-kyj/vc.rar">/Files/jetty2k-kyj/vc.rar</a>
<img src ="http://www.cppblog.com/jetty2k-kyj/aggbug/109339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jetty2k-kyj/" target="_blank">郑晓源</a> 2010-03-10 11:02 <a href="http://www.cppblog.com/jetty2k-kyj/archive/2010/03/10/109339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GOF模式之我见 之一</title><link>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/09/109295.html</link><dc:creator>郑晓源</dc:creator><author>郑晓源</author><pubDate>Tue, 09 Mar 2010 08:31:00 GMT</pubDate><guid>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/09/109295.html</guid><wfw:comment>http://www.cppblog.com/jetty2k-kyj/comments/109295.html</wfw:comment><comments>http://www.cppblog.com/jetty2k-kyj/archive/2010/03/09/109295.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/jetty2k-kyj/comments/commentRss/109295.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jetty2k-kyj/services/trackbacks/109295.html</trackback:ping><description><![CDATA[<p>感谢GOF<br>感谢K_Eckel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#102;&#114;&#119;&#101;&#105;&#64;&#119;&#104;&#117;&#46;&#101;&#100;&#117;&#46;&#99;&#110;">frwei@whu.edu.cn</a><br>感谢爱人<br>感谢家人<br>转载请注明来源<br><br>希望能和兄弟们交流&nbsp;&nbsp;&nbsp;&nbsp; jetty&nbsp;&nbsp; &nbsp; <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#101;&#116;&#116;&#121;&#50;&#107;&#95;&#107;&#121;&#106;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">jetty2k_kyj@163.com</a><br><br>**************************************************************<br><br>&nbsp;架构设计，目前理解来看，就是对概念的 分级，分离/组合，通信<br>&nbsp;&nbsp; 分级：&nbsp;比如 继承，比如 大模块下的小模块<br>&nbsp;&nbsp; 分离：&nbsp;比如 对象分类，组件分类<br>&nbsp;&nbsp; 组合：&nbsp;比如 类对象的组合<br>&nbsp;&nbsp; 通信：&nbsp;比如 通过接口，通过类WinMsg</p>
<p>&nbsp;<br>&nbsp;1. 创建型模式<br>&nbsp;<br>&nbsp;&nbsp; 1.1 Factory Method(工厂方法)[一般对象创建]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 用类C1自身特色构造函数封装对象的创建<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建的调用在抽象工厂类的子类的虚函数F1中<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建后，可添加初始化代码于F1中，F1返回C1对象指针<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C1对象指针可 工厂析构时自动[安全] 或 不用时手动[效率] 释放<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 扩展(模板类法)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将抽象工厂类的子类做成模板类<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传入Cn作为参数，就实现了编译时类变化支持<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. 扩展(配置文件法)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可增加Key,ClassName对应的Xml配置文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再由 m##n 宏 将ClassName转成对应的标识符来调用<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样，先将可能用到的Class都定义好，调用流程写好<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 更改Xml配置文件，就实现了运行时类变化支持<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 1.2 Abstract Factory(抽象厂工)[相关联的一组对象创建]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 在Factory Method(工厂方法)的基础上<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在抽象工厂类中为每一组具有相同创建过程的对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建立一个虚函数，其他类同Factory Method(工厂方法)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 如果虚函数不多，就只用一个抽象工厂的子类，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用函数名字划分产品线(男鞋线/女鞋线)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. 如果虚函数较多，可用多个抽象工厂的子类，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用类名(食品厂/鞋厂)划分产品线，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 相关联的对象的创建就在一起了<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 1.3 Singleton(单件)[保证仅有一个实例]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 私有化 类构造函数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只能通过静态成员函数Instance来生成这个唯一对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用静态私有成员变量保存这个唯一实例对象的指针<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用静态公有函数GetInstance返回这个指针<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意在类析构时，SafeDel这个指针<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 上面的具体工厂类，就应该是一个Singleton对象<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 1.4 Builder(生成器)[相同构造算法得到不同的复杂对象](STL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 分离 构造算法(稳定) 与 构造参数(不稳定)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 需要 算法函数队列 迭代器 容器<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. 例如 STL中的算法 nth_element<br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 1.5 Prototype(原型)[自我复制]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 代码<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prototype* ConcretePrototype::Clone() const<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new ConcretePrototype(*this);&nbsp;//拷贝构造函数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;｝<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 注意 类成员为 指针或复杂对象 时，拷贝构造函数 的 深层拷贝&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;2. 结构型模式<br>&nbsp;<br>&nbsp;&nbsp; 2.1 Bridge(桥接)[分离接口与实现]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1. 接口类A 为 实现类B 的父类<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. A类中有类B对象的指针，可用函数赋值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3. 从而使类A的接口功能完整化，且实现独立</p>
<br>未完，待续&#8230;&#8230;<br>
<img src ="http://www.cppblog.com/jetty2k-kyj/aggbug/109295.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jetty2k-kyj/" target="_blank">郑晓源</a> 2010-03-09 16:31 <a href="http://www.cppblog.com/jetty2k-kyj/archive/2010/03/09/109295.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>坛子里的各位，别闹腾了～</title><link>http://www.cppblog.com/jetty2k-kyj/archive/2010/01/18/105932.html</link><dc:creator>郑晓源</dc:creator><author>郑晓源</author><pubDate>Mon, 18 Jan 2010 06:45:00 GMT</pubDate><guid>http://www.cppblog.com/jetty2k-kyj/archive/2010/01/18/105932.html</guid><wfw:comment>http://www.cppblog.com/jetty2k-kyj/comments/105932.html</wfw:comment><comments>http://www.cppblog.com/jetty2k-kyj/archive/2010/01/18/105932.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cppblog.com/jetty2k-kyj/comments/commentRss/105932.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jetty2k-kyj/services/trackbacks/105932.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我放了个响屁&nbsp;&nbsp;<a href='http://www.cppblog.com/jetty2k-kyj/archive/2010/01/18/105932.html'>阅读全文</a><img src ="http://www.cppblog.com/jetty2k-kyj/aggbug/105932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jetty2k-kyj/" target="_blank">郑晓源</a> 2010-01-18 14:45 <a href="http://www.cppblog.com/jetty2k-kyj/archive/2010/01/18/105932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>