一,原型模式
定义:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
应用:Java中实现cloneable接口,C++中的深拷贝与浅拷贝。
二,单例模式
定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
应用:Windows任务管理器。
通过私有构造函数与 赋值运算符即可。
一个简陋的封转。
#include<iostream>
using namespace std;
class Singleton
{
public:
static Singleton* getInstance();
private:
static Singleton instance;
Singleton()
{
cout<<"constructor\n";
// do something
};
~Singleton()
{
cout<<"destructor\n";
//do something
}
};
Singleton Singleton::instance;
Singleton* Singleton::getInstance()
{
return &instance;
}
int main()
{
cout<<"begin main\n";
Singleton* instance = Singleton::getInstance();
cout<<"end main\n";
}
单例模式中的两种设计思想:
1,懒汉模式。
2,饿汉模式。
区别在于构建单例对象的时机。如果在等到使用的时候再构建,则是懒汉。反之,早早的构造了对象,为饿汉。
在boost中提供了一种通用的封转方法。点击打开链接