那谁的技术博客

感兴趣领域:高性能服务器编程,存储,算法,Linux内核
随笔 - 210, 文章 - 0, 评论 - 1183, 引用 - 0
数据加载中……

常见设计模式的解析和实现(C++)文档及源码打包下载

        把这个系列的文章和相应的代码打包在了一起,方便阅读察看,代码是用标准C++写的,应该可以跨平台编译链接,VC7.1下面测试通过.文章经过word到pdf的转换处理,加了标签方便查找相应的主题,有任何建议和意见,批评砖头等等的都欢迎!

       下载地址:
       文档下载地址

        BTW: 很多朋友在前面给出了很多意见,如封装不够好,基类的构造函数应该放在protected中,new delete不对称等,我已经很久没有再看这份文档和代码了,也没有时间再去一一把这些瑕疵更正,就像描述算法应该不要过多的关注语言特征一般,我想阅读这份文档的朋友能明白那些设计模式之后的思想和方法,那就够了,用一句台词来形容:领悟精神.再次谢谢朋友们的批评和鼓励.
     --By 创(2007.12.10)

posted on 2006-08-11 20:09 那谁 阅读(24032) 评论(90)  编辑 收藏 引用 所属分类: 设计模式

评论

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

太强了...
崇拜ing

"有勇气来改变可以改变的事情,有胸怀来接受不可改变的事情,有智慧来分辨两者的不同。" 这句话似乎是设计模式的精髓。
2006-08-13 16:19 | Chunxing

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

你是个大好人
2006-08-13 19:56 | goooon

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

@Chunxing
那句话是李开复博士的名言,跟设计模式应该没有关系的:)
2006-08-13 22:32 | 创系

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

@goooon
感谢鼓励,好人不敢说,只是有一些观点喜欢和别人分享罢了:)
2006-08-13 22:33 | 创系

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

实在太感谢您了。
2006-08-13 23:18 | Poney

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢作者
2006-08-14 02:36 | Ben

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢 创系
2006-08-14 08:28 | 漂舟

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

@创系
哦, 这样啊.
我还是可以把它理解成 "C++封装变化"的思想, 呵呵.

谢谢作者.
2006-08-14 16:57 | Chunxing

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

Singleton的实现应该让构造函数成为私有比较好,防止客户程序自己生成对象实例。
下面是我改的方案。

/**
* @(#) Singleton.h
* @author quickpoint At HUST
* @version 1.0 2006-08-21
*/
#ifndef _SINGLETON_H_
#define _SINGLETON_H_
/**
* Singleton is a default implementation of the
* famous pattern: Singleton.
*/
class Singleton {
public:
/**
* The single instance
*/
static Singleton & getInstance( void );

//////////////////////////////////////////////////////////////////
/**
* The methods
*/
void test( void ) const;
private:
// private constructors
Singleton();
Singleton( const Singleton & );
Singleton & operator= ( const Singleton &);
};

#endif /* _SINGLETON_H_ */

/**
* @(#)Singleton.cpp
* @author quickpoint At HUST
* @version 1.0 2006-08-21
*/
#include <iostream>
#include "Singleton.h"

/**
* This is the implementation file
*/
/////////////////////////////////////////////////////////////////////

/**
* Get the only one instance
* @return only one instance
*/
Singleton & Singleton::getInstance( void ) {
static Singleton g_instance; // only one instance
return g_instance;
}

/**
* Private constructor
*/
Singleton::Singleton() {
}

/**
* The test method
*/
void Singleton::test( void ) const {
std::cout << "This is a singleton test." << std::endl;
}

/////////////////////////////////////////////////////////////////////
/**
* A simple test, compile it with:
* g++ -o Singleton -DDEBUG=1 Singleton.cpp
*/
#if DEBUG
using namespace std;
int main( int argc, char * argv[] ) {
Singleton::getInstance().test();
return 0;
}
#endif

2006-08-21 14:57 | quickpoint

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

我好像下载不了阿。
麻烦楼主发我一份,谢谢

mailyuanhao@gmail.com
2006-08-22 18:03 | haohao

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢了。
2006-08-31 01:52 | worant

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢converse,以前浏览过你的blog,那时候我还对这本书没有太多的感觉,今天下了英文版的,但是理解起来很吃力,谢谢你
2006-10-01 20:50 | neo_yang

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

感谢,真是里害
2006-10-10 17:21 | yjl

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

我想下在设计模式的书和代码,现在怎么下载不了了?
2007-01-04 10:14 | Gavin

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

怎么下载不了
老是说地址错误
请管理员看一下
2007-01-08 21:17 | aileen

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

经典
2007-01-11 20:17 | clerk

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

go
2007-01-19 19:47 | wang

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

i want to down load it
2007-01-19 19:47 | wang

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

常见设计模式的解析和实现(C++)文档及源码打包下载
2007-01-19 19:48 | wang

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

您好!
我是做asp的,计算机正规本科毕业,感觉asp实在没啥琢摸头,想放弃转php,结果发现php也强不到哪里去,总感觉前途迷茫,生活都没了希望。
于是想起了C++,语法和面向对象我都懂,知道C++功能强大,可不知从何入手,我不喜欢ms的技术封闭,想向linux/unix平台转。可该学什末 将来能做什末 不知道!做什末前途好一些不知道!会asp\php做什末有优势不知道!
该看什末书 不知道! 学哪些周边的东西?!
我看到了您的贴子,感觉这就是好的方向,希望您能指点一二。
http://community.csdn.net/Expert/TopicView3.asp?id=5376982
2007-03-05 15:52 | flynet

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

哈哈 我来泼点冷水
小同志 写的不错 继续努力 :P
2007-03-07 13:54 | 林小雪

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

厉害
2007-04-15 15:49 | FAIRY

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

楼主好人啊.
怎么下载出错...
2007-04-28 07:24 | dexin

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

感谢楼主!
下载出错了,不知为什么.
2007-04-28 07:35 | dexin

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

Thanks a lot!
2007-06-25 07:04 | THX

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

下载不了 可以给我发一份吗?
我的邮箱:tiange0823@163.com 谢谢了
2007-06-28 14:56 | 无法链接上去

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

好东东哪,我正需要,呵
2007-09-08 16:44 | 安娜

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

楼主好人啊.up
2007-10-02 23:39 | PWL

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

2007-12-04 05:14 | alexandercer

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

看了你的代码,感觉封装上有比较大的问题.违反了基本的new与delete成对出现原则,不过还是很好的作品.努力
2007-12-10 12:36 | tom8251

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

在c++中,应用设计模式却不使用智能指针,内存管理迟早会变成一件极其痛苦的事情, 孟岩(?)甚至说在C++中不使用shared_ptr,就不要谈面向对象设计。。。
2007-12-10 14:38 | eXile

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

很多朋友在前面给出了很多意见,如封装不够好,基类的构造函数应该放在protected中,new delete不对称等,我已经很久没有再看这份文档和代码了,也没有时间再去一一把这些瑕疵更正,就像描述算法应该不要过多的关注语言特征一般,我想阅读这份文档的朋友能明白那些设计模式之后的思想和方法,那就够了,用一句台词来形容:领悟精神.再次谢谢朋友们的批评和鼓励.
2007-12-10 14:44 | 创系

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

个人认为一个好的程序不需要什么shared_ptr,这也可以看出程序水平的一方面.特别在一些要求较高的系统中是不现实的.
2007-12-10 15:00 | tom8251

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

说一个单词错误Concreate应该是concrete
2007-12-14 11:50 | tom8251

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

真的很不错,看了你的介绍及源码框架,感觉对模式了解了很多,真的很感谢你。
2008-03-30 23:05 | 初学模式人

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

这是个好东东
2008-05-12 12:33 | 廖平华

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

很好,非常感谢。可是无法下载了。如果可以,请发份一给:loaden AT gmail.com
2008-06-04 22:38 | Loaden

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

我也想要,能不能给我一份,非常感谢!
linyin1026@gmail.com
2008-06-06 12:47 | lynne

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

确实无法下载了,博主可否Email一份给我:aurain@yahoo.cn,非常感谢
2008-06-13 21:11 |

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

下载不了了!~
麻烦发一份到邮箱,感谢了!~
tracysqy@163.com
2008-06-23 17:22 | tracysqy

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

ly005_2002@hotmail.com
也给我发一份 谢啦:)
2008-07-09 10:09 | laoniu

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

TO楼上所有索要文档的朋友们,那个下载地址不知道为什么失效了,我曾经向站长咨询过,但是没有回应不了了之,我自己也没有备份保留,哪位朋友有的话麻烦发一份给我(converse_lc@163.com),我再把它传上来,抱歉!
2008-07-09 11:28 |

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

能不能发给我一份
谢谢
ndim@163.com
2008-07-22 22:02 | ndim

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

用迅雷可以下的到,直接的链接坏了
2008-08-02 12:54 | Alpha

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

@Alpha
感谢提醒,我怎么没想到呢~~上面的朋友,现在文档已经可以下载了:)
2008-08-02 14:42 |

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

努力看看
2008-08-13 14:49 | 李明坤

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

创老师:在看factory设计模式时,我有一个问题不太明白,想请教一下:
你这句:
void Creator::AnOperation()
{
Product* p = FactoryMethod();

std::cout << L"an operation of product\n";
}
这里的p我觉得存在内存泄露问题,还是我没有深刻理解创老师的代码。请有时间回复一下,我的邮箱:jimiaotong@163.com
2008-10-06 09:36 | 云卷去舒

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

@云卷去舒
原来写的代码不是很严谨,有不少硬伤,你凑合着看,重点放在设计模式的实现上了.
2008-10-07 00:43 |

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

原来楼主这么热心,下下来研究研究,thanks
2008-12-17 11:25 | 小不点

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢!
2009-04-20 15:37 | apple_ant

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

好东西,赞一个!!
谢了
2009-05-06 23:10 | 反对法

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

强人,牛人!
2009-05-07 19:21 | 我一定要成为C++高手!

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

谢谢高手了!!我会经常光临的!!
2009-05-31 14:39 | 笨笨

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

可以更新为word文档吗?方便打印
2009-07-13 10:44 | roy

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢作者,,
2009-07-15 08:21 | 王凡

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

非常非常谢谢~~~
2009-10-20 13:50 | 过客

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

thank you very very very much!
2009-10-27 17:17 | lxh

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

楼主好人
2009-10-28 22:12 | lq

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

今天从网上下了一个设计模式的,转到此,表示感谢
2009-11-08 20:33 | lizi

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

您的例子中,抽象工厂的方法用得有些不对:
// 生产产品A的第一种实现
ConcreateFactory1 *pFactory1 = new ConcreateFactory1;
AbstractProductA *pProductA = pFactory1->CreateProductA();

// 生产产品B的第二种实现
ConcreateFactory2 *pFactory2 = new ConcreateFactory2;
AbstractProductB *pProductB = pFactory2->CreateProductB();

我觉得应该是:
// 生产产品A的第一种实现
AbstractFactory*pFactory1 = new ConcreateFactory1;
AbstractProductA *pProductA = pFactory1->CreateProductA();

// 生产产品B的第二种实现
AbstractFactory*pFactory2 = new ConcreateFactory2;
AbstractProductB *pProductB = pFactory2->CreateProductB();

也就是在接收时应该是基类,AbstractFactory.这是一点.其实这样改了还是没有真正的体现抽象工厂的"封装变化"思想,体现出来的还是一个简单工厂的翻版.应该在新建一个类来完成工厂类的创建:
class createFactory
{
public:
createFactory(AbstractFactory *AbsFacty);
~createFactory();

void createProducts();
private:
AbstractFactory *CurrentAbsFacty;

}

///////////////////////////////////
createFactory::createFactory(AbstractFactory *AbsFacty)
{
CurrentAbsFacty = AbsFacty;
}
createFactory::createProducts()
{
AbsFacty->CreateProductA();
AbsFacty->CreateProductA();
}

//////////////////////////////////////
//主函数的写法:

createFactory * createFacty = new createFactory(new ConcreateFactory2);
createFacty->createProducts();

个人愚见,多多指教! liuchuanwen109@126.com
2009-12-18 18:53 | Noname

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

上面写错了一点:
createFactory::createProducts()
{
AbsFacty->CreateProductA();
AbsFacty->CreateProductA();
}

应该是:
createFactory::createProducts()
{
CurrentAbsFacty ->CreateProductA();
CurrentAbsFacty ->CreateProductA();
}
2009-12-18 18:54 | Noname

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢楼主的知识分享
2010-01-31 15:07 | lantis

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

thank you very much~!
2010-02-05 16:38 | ben

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢
2010-03-07 23:41 | ssss

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

thanks.:)
2010-03-15 00:52 | linSG

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢了
2010-04-10 12:52 | 陈建辉

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

开始时看到别人转载你的文章,发现写得相当不错,就都到博客这边来了
2010-04-21 17:31 | 乔宁博

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

感谢
2010-06-01 12:05 | roy

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

不错,不错
2010-07-29 10:30 | 点到

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

谢谢.....
2010-09-19 16:31 | l

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

博主辛苦啦,是个好东西,呵呵
2010-12-17 10:51 | fujialin

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

十分感谢!
2011-03-30 00:35 | EricZhao

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢如获至宝:)
2011-04-06 11:02 | raining.peidx

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢共享
2011-04-29 11:27 | guide

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

still download now,thanks
2011-05-25 16:21 | KPTu

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢
2011-06-03 11:32 |

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

大好银啊!!学习了
2011-06-08 17:44 | lln3306

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载[未登录]  回复  更多评论   

太感谢了,好好学习下!
2011-06-15 10:31 | chelsea

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

可是,为什么少了三种模式呢?
2011-06-18 17:09 | alex_

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

太感谢了 学习中...
2011-07-26 11:46 | 122

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢无私奉献
2011-10-18 09:15 | 小小代码工

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

According to my investigation, thousands of people in the world get the <a href="http://goodfinance-blog.com">loans</a> at various banks. Thence, there is good chances to get a commercial loan in any country.
2012-07-10 10:13 | GallegosALEXIS23

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

lz好人
2012-09-12 10:55 | 茄子

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢,学习
2013-03-27 17:22 | ning

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

谢谢
2013-09-05 16:36 | 是否咖啡

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

太伟大了
2013-09-21 22:10 | bullet

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

怎么感觉第一个简单的工厂模式,完全没什么作用,而且ConcreateProduct类完全没有任何作用啊?
2014-07-15 21:13 | LZG

# re: 常见设计模式的解析和实现(C++)文档及源码打包下载  回复  更多评论   

@lln3306
@raining.peidx
@bullet
@小小代码
@122
@王凡
可以发我一份吗?下载不了。。谢啦(邮箱:1210993016@qq.com)
2016-05-22 11:58 | 残阳丛林

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理