原型模式

 

动机
在软件系统中,经常面临着"某些复结构复杂得对象"得创建工作,
由于需求得变化,这些对象经常面临着急剧得变化,
但是他们却拥有比较稳定一致得接口。

 

如何应对这种变化?如何向"客户程序(使用这些对象得程序)"
隔离出"这些易变对象",从而使得"依赖这些易变对象得客户程序"
不随着需求改变而改变

 

常用场景
想创建一个对象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;
}

 

posted @ 2018-12-12 23:43  osbreak  阅读(114)  评论(0编辑  收藏  举报