原型模式
动机 在软件系统中,经常面临着"某些复结构复杂得对象"得创建工作, 由于需求得变化,这些对象经常面临着急剧得变化, 但是他们却拥有比较稳定一致得接口。
如何应对这种变化?如何向"客户程序(使用这些对象得程序)" 隔离出"这些易变对象",从而使得"依赖这些易变对象得客户程序" 不随着需求改变而改变
常用场景
想创建一个对象A,但是A得创建比较复杂,可以考虑使用原型模式。
class Resume { public: string name; Resume(string s) { name = s; } void setName(string s) { name = s; } Resume *clone() { Resume *p = new Resume(name); *p = *this; return p; } };
int main() { Resume *r1 = new Resume("Li"); Resume *r2 = r1->clone(); cout << r1->name << endl; r2->setName("Liu"); cout<< r2->name <<endl; return 0; }