﻿<?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++博客-大胖的部落格-随笔分类-Design Pattern</title><link>http://www.cppblog.com/playerken/category/10696.html</link><description>Just a note</description><language>zh-cn</language><lastBuildDate>Thu, 09 Jul 2009 11:59:01 GMT</lastBuildDate><pubDate>Thu, 09 Jul 2009 11:59:01 GMT</pubDate><ttl>60</ttl><item><title>常用设计模式</title><link>http://www.cppblog.com/playerken/archive/2009/06/15/87697.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Mon, 15 Jun 2009 03:25:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/15/87697.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87697.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/15/87697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87697.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87697.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 常用设计模式&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/15/87697.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-15 11:25 <a href="http://www.cppblog.com/playerken/archive/2009/06/15/87697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>State</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87336.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 08:23:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87336.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87336.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87336.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87336.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: State模式&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87336.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 16:23 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Visitor</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87327.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 08:02:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87327.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87327.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87327.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Visitor模式&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87327.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 16:02 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Template Method</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87320.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 07:22:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87320.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87320.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87320.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87320.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 基类中定义了一个算法的轮廓，算法每一步具体的实现留给了派生类。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87320.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 15:22 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Observer</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87317.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 07:12:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87317.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87317.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87317.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87317.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当一个subject的状态变化时，多个observer的状态需要跟着变化。<br>subject内部存放多个observer的指针，observer提供一个更新自身状态的接口供subject调用。<br>当subject状态变化时，调用observer的更新接口。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87317.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 15:12 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Memento</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87307.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 06:33:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87307.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87307.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87307.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87307.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87307.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在不破坏封装性的前提下，捕获一个对象（Originator）的内部状态，并在该对象之外（memento）保存这个状态，这样以后就可将该对象恢复到原先保存的状态。<br>Memento除了析构函数，其它成员均为私有，将Originator声明为友元，只允许它访问。Memento中保存了Originator的状态。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87307.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87307.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 14:33 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87307.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mediator</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87293.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 03:48:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87293.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87293.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87293.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87293.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用一个中介对象Mediator来封装其它对象之间的交互，每个其它类型的对象只与Mediator交互。<br>每个其它类型对象都包含有同一个Mediator指针，Mediator中包含有所有其他类型对象指针。<br>每个其它类型对象调用Mediator接口，由Mediator对其它对象进行操作。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87293.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 11:48 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iterator</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87282.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87282.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87282.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87282.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87282.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 封装一个Iterator类，提供方法访问一个聚合对象中各个元素，而又不暴露该对象的内部表示。<br>这样可以对同一个聚合同时有多个遍历。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87282.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 10:38 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Command</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87276.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87276.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87276.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87276.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87276.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 将要执行的命令封装在Receiver类中，执行命令的指令封装在Command类中，Command类保存一个Receiver指针。<br>先注册一个命令（将Receiver传给Command）；<br>再执行命令（调用Command的函数，来调用Receiver的函数)，在执行命令前可以取消注册的命令（删除Command中的Receiver）。<br>类似函数回调，先注册一个函数，需要时再调用。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87276.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 10:05 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Chain of Responsibility</title><link>http://www.cppblog.com/playerken/archive/2009/06/10/87271.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 10 Jun 2009 01:23:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/10/87271.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87271.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/10/87271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87271.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87271.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 每一个handler保存了一个handler指针，用来指向下一个handler，形成一个handler链。<br>当一个handler收到一个request的时候，可以选择自己处理或者转给下一个handler处理。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/10/87271.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-10 09:23 <a href="http://www.cppblog.com/playerken/archive/2009/06/10/87271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Proxy</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87236.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 12:43:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87236.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87236.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87236.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 具体实现类继承于抽象基类，Proxy类也继承于抽象基类，并有一个实现类类型的指针，当需要时才创建实现类对象，调用实现类的函数。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87236.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 20:43 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flyweight</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87204.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 08:55:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87204.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87204.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87204.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87204.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对同样内容的对象，只创建一份。<br>需要显示对象时，若对象存在，则返回已存在对象的地址；若不存在，则创建对象再返回。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87204.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 16:55 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Fasade</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87198.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87198.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87198.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87198.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87198.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Fasade模式提供一个简单接口，调用复杂的子系统接口。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87198.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 16:14 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Decorator</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87196.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 07:56:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87196.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87196.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87196.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87196.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87196.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当想针对某个子类对象添加新功能时，可以不采用继续继承该子类产生新的派生类的方法。<br>Decorator更加灵活地动态扩展目标子类。<br>从基类新派生的Decorator类保存了基类类型的指针，重写了需要扩展功能的函数。<br>Decorator类对象构造时传入基类类型指针（实际指向目标子类），这样内部可以调用目标子类的方法，重写时调用目标子类方法，并加入新的操作。<br>Decorator对象就可以取代目标子类对象，可以调用原来的操作，还加入了新的操作，且类型都为基类类型。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87196.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 15:56 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Component</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87186.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 07:16:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87186.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87186.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87186.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87186.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Component使用户对组合对象和单一对象的操作具有一致性。<br>无论是组合对象还是单一对象，都从抽象基类派生；抽象基类声明所有对象共有的操作和组合对象特有的操作。<br>单一对象在重写针对组合对象的操作时可返回错误。<br>这样用户可以用同样的代码操作抽象基类类型指针，实现对组合对象和单一对象的操作，而无需关心操作对象具体类型是什么。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87186.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 15:16 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bridge</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87180.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 06:32:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87180.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87180.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87180.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87180.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 将抽象与实现分离，对实现部分的修改，不会影响抽象部分的代码。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87180.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 14:32 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Adapter</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87149.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 02:37:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87149.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87149.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87149.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87149.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87149.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当需求的接口描述和已经存在的实现不匹配时，可以通过继承和组合两种方法实现adapter模式，从而用已有的实现满足需求。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87149.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 10:37 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ProtoType</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87145.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 01:59:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87145.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87145.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87145.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87145.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 当要创建的对象的内容与一个已经创建的对象内容相同时，无需再重新输入相同参数创建对象，可以利用拷贝构造函数创建已知对象的拷贝。<br>ProtoType所提供的接口就是对自身拷贝构造函数的封装。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87145.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 09:59 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Builder</title><link>http://www.cppblog.com/playerken/archive/2009/06/09/87142.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Tue, 09 Jun 2009 01:36:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/09/87142.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/87142.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/09/87142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/87142.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/87142.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一个复杂对象的创建包括两个部分：每个部分的创建和按照一定的算法将它们组合起来。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/09/87142.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/87142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-09 09:36 <a href="http://www.cppblog.com/playerken/archive/2009/06/09/87142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Abstract Factory</title><link>http://www.cppblog.com/playerken/archive/2009/06/07/86985.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Sun, 07 Jun 2009 07:08:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/07/86985.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/86985.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/07/86985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/86985.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/86985.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 产品抽象类声明产品接口，每个具体产品子类重写该接口。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/07/86985.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/86985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-07 15:08 <a href="http://www.cppblog.com/playerken/archive/2009/06/07/86985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Factory Method</title><link>http://www.cppblog.com/playerken/archive/2009/06/07/86970.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Sun, 07 Jun 2009 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/06/07/86970.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/86970.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/06/07/86970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/86970.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/86970.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 产品抽象类声明产品接口，每个具体产品子类重写该接口。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/06/07/86970.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/86970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-06-07 11:31 <a href="http://www.cppblog.com/playerken/archive/2009/06/07/86970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Strategy</title><link>http://www.cppblog.com/playerken/archive/2009/05/27/85891.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 27 May 2009 03:50:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/05/27/85891.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/85891.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/05/27/85891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/85891.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/85891.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/05/27/85891.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/85891.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-05-27 11:50 <a href="http://www.cppblog.com/playerken/archive/2009/05/27/85891.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Singleton</title><link>http://www.cppblog.com/playerken/archive/2009/05/27/85887.html</link><dc:creator>大胖</dc:creator><author>大胖</author><pubDate>Wed, 27 May 2009 03:24:00 GMT</pubDate><guid>http://www.cppblog.com/playerken/archive/2009/05/27/85887.html</guid><wfw:comment>http://www.cppblog.com/playerken/comments/85887.html</wfw:comment><comments>http://www.cppblog.com/playerken/archive/2009/05/27/85887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/playerken/comments/commentRss/85887.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/playerken/services/trackbacks/85887.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一个类只能创建一个实例，提供一个全局访问点，用户不能随便创建对象。&nbsp;&nbsp;<a href='http://www.cppblog.com/playerken/archive/2009/05/27/85887.html'>阅读全文</a><img src ="http://www.cppblog.com/playerken/aggbug/85887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/playerken/" target="_blank">大胖</a> 2009-05-27 11:24 <a href="http://www.cppblog.com/playerken/archive/2009/05/27/85887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>