上一页 1 2 3 4 5 6 ··· 15 下一页
摘要: 组合模式属于对象的结构模式,有时又叫做部分-整体模式,组合模式将对象组织到树结构中,可以用来描述整体与部分的联系。其可以使客户端将单纯元素和组合元素同等对待。 当需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑使用组合模式了。 组合模式(或叫合成模式)是将对象组合成树形结构以表示部分-整体的层次结构。组合模式使得用... 阅读全文
posted @ 2013-09-06 22:16 @且听风吟@ 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 适配器模式是一种结构模式。所谓结构模式是指将类或者对象结合在一起形成更大的结构。结构模式又分为类的结构模式和对象的结构模式。类的结构模式就是通过使用继承把 类和接口等结合在一起,已形成更大的结构。当一个类从父类继承并实现接口时,这个新的类就把父类的结构和接口的结构结合起来了。类的结构模式是静态的(就是由开始的继承结构决定了结构模式的结构)。一个类的结构模式的典型例子就是类形式的适配器模式。对象的... 阅读全文
posted @ 2013-09-06 17:57 @且听风吟@ 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 原型模式是对象的创建模式,通过给出一个原型对象来指明所要创建的对象的类型。然后用复制这个原型对象的方法来创建出更多同类型的对象。 原型模式可以不用重新初始化对象,而动态的获取对象运行时的状态。使用原型模式需要注意浅复制和深复制的问题。即如果字段是值类型的,那么逐位复制是可以的。但是如果是引用类型或者指针,那么复制的对象和和原来对象都指向同一对象,即只有一份副本。 浅复制:被复制的对象所含有的... 阅读全文
posted @ 2013-09-06 15:22 @且听风吟@ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: spinlock spinlock介绍 spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线... 阅读全文
posted @ 2013-09-06 12:58 @且听风吟@ 阅读(723) 评论(0) 推荐(0) 编辑
摘要: C++ 空类,默认产生哪些成员函数。 默认构造函数、默认拷贝构造函数、默认析构函数、默认赋值运算符 这四个是我们通常大都知道的。但是除了这四个,还有两个,那就是取址运算符和 取址运算符 const 即总共有六个函数。 一个示例如下: 1: class Empty 2: 3: { 4: 5: ... 阅读全文
posted @ 2013-08-30 15:43 @且听风吟@ 阅读(1412) 评论(0) 推荐(0) 编辑
摘要: Linux 下POSIX线程 使用threadid标识一个线程。 创建线程的函数如下: 1: #include 2: 3: int pthread_create( 4: pthread_t *restrict tidp, 5: const pthread_attr_t *restric... 阅读全文
posted @ 2013-08-29 09:29 @且听风吟@ 阅读(254) 评论(0) 推荐(0) 编辑
摘要: TCP连接的建立 三次握手 服务器端准备好接收外来的链接,通过该socket、bind、listen3个函数完成,为被动打开 客户端通过connect函数主动建立连接,通过发送一个SYN(带序号) 服务器确认(ACK)客户的SYN,确认序号为服务SYN的序号加1,同时发送一个SYN(带序号) 客户端确认(ACK)服务的SYn,确认序号为服务SYN的序号加1.... 阅读全文
posted @ 2013-08-25 22:20 @且听风吟@ 阅读(385) 评论(0) 推荐(0) 编辑
摘要: KMP算法是用来做字符串匹配的。关于字符串匹配,最简单最容易想到的方法是暴利查找,使用双重for循环处理。 该方法的时间复杂度为O((n-m+1)*m) (n为目标串T长度,m为模式串P长度, 从T中寻找是否有P串存在)。 暴利的问题是在匹配中没有利用之前比较的信息。而这些信息可能是非常有用的。所以是可以进行优化以降低时间复杂度。 而KMP算法就是一个利用模式串来构造计算不匹配时计算模式串和... 阅读全文
posted @ 2013-08-25 13:58 @且听风吟@ 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 原因 经常使用thrift来编写rpc通信,但是对下面两个问题还是有些疑惑 thrift 的required、optional和不写有什么区别 optional不设置isset的话被传输后值? 实验 今天就自己编写代码测试了一下。如下: 定义book.thrift 如下: 1: namespace cpp codelab ... 阅读全文
posted @ 2013-08-22 14:24 @且听风吟@ 阅读(13137) 评论(0) 推荐(1) 编辑
摘要: 转载自:http://www.gaojinbo.com/ubuntu-server%E4%B8%8B%E9%85%8D%E7%BD%AEutf-8%E4%B8%AD%E6%96%87%E7%8E%AF%E5%A2%83.html 今日修改按照该链接的操作测试可行。mark下。 1、安装中文语言包 apt-get install language-pack-zh 2、添加lo... 阅读全文
posted @ 2013-08-20 13:30 @且听风吟@ 阅读(599) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 15 下一页