原型模式
使用对象克隆代替重新创建对象,一般语言自带clone
功能。
如存在类A,需要例化多个A的对象:
//不用原型模式
A a1 = new A();
A a2 = new A();
//使用原型模式
A ai = new A();
A a2 = a1.clone();
由上可见,原型模式隐藏了对象创建细节并避免了多次new
即多次执行构造函数,优化了性能。
限制
直接在内存中复制数据,因此不会调用到类的构造方法,克隆的对象构造函数不会改变即初始化的信息固定了,其余属性和方法可以进行更改
克隆方式
tips:
值类型:如int a = 0;,string a = null;......
引用类型:如Student sd = null;
浅克隆
值类型复制了值,引用类型复制了引用,引用就是指针、地址,复制引用相当于复制了门牌号,房间内容没复制。
浅克隆
值类型复制了值,引用类型与上面相反。