RAII

1.RAII:
借用局部对象资源管理的概念。即在一个作用域中的局部对象,在程序运行超过该作用域后,该对象被自动销毁。

2.PIMPL:
PIMPL惯用手法的作用是解开类的使用接口和实现的耦合。涉及紧耦合和松耦合的概念。松耦合对于编译时有好处的。举例说明如下:
#include<x.hpp>
class C
{
      public:
            void f1();
      private:
            X x; //与X的强耦合
};
如上面的代码,C与X的实现就是强耦合的。从语义角度来讲(或者从封装的角度来讲),X是C的实现的一部分,不应该暴露给客户,它对客户应该是透明的。以上的强耦合,导致如果X的实现部分被更改,则在编译的时候,不仅X要重新编译一次,就连C也要受到牵连。解决这个途径就是采用PIMPL手法.即将C中X的对象,改为指向X对象的指针。使用指针有效得隔离了X的实现。且不需要包含X的头文件,即#include<x.hpp>这一句可以省略。
使用PIMPL修改后的类如下:
class X; //用前置声明来取代include<x.hpp>
class C
{
      ...
      private:
            X* pImpl; //声明一个X*的时候,class X不用完全定义
};
在一个既定的平台上,任何指针的大小都是相同的。这样修改X的定义,就不会影响到类C了。不会出现“城门失火,殃及池鱼。”就是因为护城河离城门远了(松耦合)。

3.设计模式之-工厂模式和与策略模式






posted on 2011-03-08 21:04 MrRightLeft 阅读(204) 评论(0)  编辑 收藏 引用


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


<2011年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜