建设集团招工信息网站,wordpress添加订阅会员,wordpress title优化,专业企业网站搭建推荐定义
使用原型实例指定创建对象的种类#xff0c;然后通过拷贝这些原型来创建新的对象。
应用场景
在软件系统中#xff0c;经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化#xff0c;这些对象经常面临着剧烈的变化#xff0c;但是它们却拥有比较稳定一致的…定义
使用原型实例指定创建对象的种类然后通过拷贝这些原型来创建新的对象。
应用场景
在软件系统中经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化这些对象经常面临着剧烈的变化但是它们却拥有比较稳定一致的接口。如何应对这种变化?如何向“客户程序使用这些对象的程序)”隔离出“这些易变对象”从而使得“依赖这些易变对象的客户程序”不随着需求改变而改变?
结构 代码示例
//Prototype.h
//对象深拷贝实现
/****************************************************/
#ifndef PROTOTYPE_H
#define PROTOTYPE_H
#includeiostream
using namespace std;class prototype
{
public:prototype() { i 10; j 3.23; };prototype(const prototype proto) { i proto.i; j proto.j; };~prototype() {};int get_i() { return i; };double get_j() { return j; };private:int i;double j;
};#endif
//test.cpp
/****************************************************/
#include iostream
#include string
#include Prototype.h
int main()
{prototype a;cout i: a.get_i() endl j: a.get_j() endl;prototype b(a);cout i: b.get_i() endl j: b.get_j() endl;return 0;
}运行结果
要定总结
Prototype模式同样用于隔离类对象的使用者和具体类型易变类)之间的耦合关系它同样要求这些“易变类”拥有“稳定的接口”。Prototype模式对于“如何创建易变类的实体对象”采用“原型克隆”的方法来做它使得我们可以非常灵活地动态创建“拥有某些稳定接口”的新对象——所需工作仅仅是注册一个新类的对象即原型)然后在任何需要的地方Clone。Prototype模式中的Clone方法可以利用某些框架中的序列化来实现深拷贝。