代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问。
应用:
(1);远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实
(2);虚拟代理,根据需要创建开销大的对象。通过虚拟代理存放实例化需要很长时间的真是对象。
(3);安全代理,用来控制真是对象访问时的权限。
(4);智能指针,当调用真实的对象时,代理处理另外一些事。
Effective C++:
1:确定对象被使用前已经被初始化
(1),为内置类型进行手工初始化,因为C++不保证初始化他们
(2),够函数最好使用成员初始列(member initialization list),而不要在构造函数内使用赋值操作(assignment)。初始列列出的成员变量,期排列次序应该和他们在class中的生命次序相同。
(3),为免除“跨编译大暖初始化次序”问题,用local static 对象替换non-local static 对象(单例模式)
2:构造/析构/赋值运算
(1),编译器可以案子为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数
(2),为驳回编译器自动提供的技能,可将相应的成员函数声明为private并且不予实现。使用像Uncopyable这样的base class也是一种做法。
class Uncopyable { protected: Uncopyable() {} ~Uncopyable() {} private: Uncopyable(const Uncopyable&); Uncopyable& operate=(const Uncopyable&); };
(4),Classes 的设计目的如果不是作为base classes使用,或不是为了具备多态性(polymorphically),就不应该声明virtual 析构函数。
代理模式 + Effective C++ 第一章笔记,布布扣,bubuko.com
原文:http://blog.csdn.net/superzhaifd/article/details/38024133