如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段相同),在这种情况下,我们可以对已有对象(原形)进行复制的方式来创建新对象,以达到节约创建时间的目的。这种基于原形来创建对象的方式叫做原形设计模式(Prototype Design Pattern),简称原形模式。

对象创建成本大

创建对象包含的申请内存,给成员变量赋值并不会消耗太多时间。但是,如果对象中的数据需要经过复杂的计算才能得到(比如排序,计算哈希值),或者需要从RPC、网络、数据库、文件系统等非常慢的 IO 中读取,这种情况下,我们可以利用原形模式,从其他已有对象中直接拷贝得到。