发布时间:2012-12-27 01:50:02
创建型设计模式是我们经常需要用到的设计模式之一,顾名思义,这种设计模式是用来创建对象的设计模式。如果你不熟悉,也许会问,我们已经有了构造函数,为什么还需要这种设计模式?为什么我们需要一个中间层专门用来创建对象呢? 我们这里先来设计一个场景,然后来看看为什么我们需要创建型设计模式。 场景: 一般来说,在constructor中,我们有些事情是不可以做的,比如把正在创建的类对象添加到一个global的数据结构中去,比如调用自身的虚函数。如果我们正好遇到这些场景,我们一般会想到利用两段式方法来创建这种对象,在constructor中初步初始化对象成员,然后用另外一个init函数来做进一步的对象......【阅读全文】
发布时间:2012-12-23 14:41:40
线程安全定义: 我们可以从多个方面来定义线程安全 1. 从代码的角度来定义:我们说一段代码是线程安全的,指的是当多个线程同时调用这段代码时,这段代码操作的共享资源(数据结构和行为)不会处于一个不安全的中间状态,所有线程都有一个或一组可预期的操作结果。 2. 从数据结构的角度来定义:我们说某个数据结构的访问时线程安全的,是指当多个线程从不同的角度来访问它的对象或者实例时,它不会处于一个不安全的中间状态。而是对任何线程,都有一个或一组可预期的结果。 很多时候,我们会根据不同的需求来处理线程安全,或者根据我们使用的编程语言来决定如何处理线程安全。 比如,为了性能,我们可能不设计一个线程......【阅读全文】
发布时间:2012-12-18 01:35:10
C++是一门美妙的语言,也是一门复杂的语言。有多少理由,我们可以用来唾弃它,但有更多的理由让我们选择它做为我们的开发工具。 老实说,工作了这么多年,真的很少见到C++高手,我也算是工作在好几个领域数一数二的公司了,但是真正完全懂得用C++做设计的工程师,少之又少。比如我现在的公司,就有人说过这样一句话“我原以为我的C++不怎么样,没想到来到这家公司后,我竟然变成了C++高手。”反而,在一些小公司里,或者从小公司出来的工程师,对C++的掌握程度却非常好。 C++确实是一门易学难精的语言。它包含的内容太多了,而且这些内容,我们又可以从不同的角度去理解,度量它们。所以有时候我们自以为已经掌握了它......【阅读全文】
发布时间:2012-12-15 01:22:39
C++是一门神奇的语言,喜欢它的人,非常非常的迷恋它;厌恶它的人,非常非常的憎恨它。我并不想引领什么语言争论,我只是想说它真是一门好语言,但是并不是对应所有人来说的。因为你可以用它做坏事。用它,我们必须给我们自己编一个编程纲领,规定我们什么该做,什么不该做。否则,它就是你的噩梦。 今天一到办公室,我就和一位同事为了一个bug fix争论了起来。让我们先来看看,这是一个什么样的问题: {code} class A; static A *p_a = NULL; class A { public: A......【阅读全文】