
设计模式
文章平均质量分 91
dog_in_yellow
这个作者很懒,什么都没留下…
展开
-
泛化仿函数用法及参数绑定的问题
《C++设计新思维》一书里的泛化仿函数从Command模式讲起。Command模式主要用来降低系统中命令的调用者和执行者间的依存性。设计模式的书里面一般都采用多态的机制,调用者持有Command对象的基类接口,在此处我们称为Command接口,Command接口不知道自己将被用于执行什么命令,一般只包含一个触发命令执行的虚函数,假设名为Excute。各种不同的实际执行命令的Command原创 2007-02-15 12:34:00 · 1508 阅读 · 0 评论 -
包装模式
相信用C++的朋友都喜欢封装自己的类,我也是一样。为什么要封装呢?因为封装能给我们未来的工作带来好处:1、通过封装可以把现有接口改变成自己比较习惯的接口来使用;2、通过封装可以把相关的功能集中到一起,便于使用;3、通过封装可以把我们所需要使用的功能子集从原有的众多功能中分离出来,便于记忆与使用;4、封装可以使得我们写兼容不同平台的代码变得更加简洁;5、通过封装可以避免以后重复写繁琐的相同的代码,提原创 2008-01-13 11:26:00 · 1294 阅读 · 0 评论 -
定界加锁模式
在多线程的程序中,当一个资源被多个线程共同访问时,就需要对该资源的访问进行加锁。加锁的操作不同的操作系统实现方式可能不同,如windows操作系统用CRITICAL_SECTION,Linux系统用pthread_mutex_t。尽管如此,对锁的操作却大致相同,一般有以下几个操作:初始化锁、加锁、解锁、删除锁。初始化锁和删除锁就像分配和释放内存一样,第一次使用前和最后一次使用后分别做一次原创 2008-01-13 11:31:00 · 1349 阅读 · 0 评论 -
观察者模式
观察者模式的意图是:定义对象间的一种关系,当一个对象的状态发生变化时,所有依赖于它的对象都能得到通知。 你可以考虑这样一种应用,当一个论坛注册了个新用户后,论坛程序自动发一个站内欢迎消息和email。以后可能还有需求说同时也用手机发一条短信等等。在这里面,新用户是一个对象,发站内欢迎消息是一个对象,发email也是一个对象,还有发手机短信也可以是个对象。当新用户注册时(状态改变)原创 2008-01-13 11:35:00 · 869 阅读 · 0 评论