就是clone,就是copy一份自己。
这个倒是非常有用处。很多时候希望用某个数据去测试,又不影响原来数据。那么就需要 克隆。可是原型这个词有点吓人。叫克隆多好。
高级语言,如java的默认clone,对于集合类型是只copy指针。所以需要自己重写clone方法。实现深拷贝。也就是原型。
package com.linson.android.hiandroid2.DesignPattern; import java.util.ArrayList; import java.util.List; public class Prototype implements Cloneable { public String mname; public Integer mid; public List<Integer> mYears=new ArrayList<>(); // @Override // protected Object clone() throws CloneNotSupportedException // { // return super.clone(); // } @Override protected Object clone() throws CloneNotSupportedException { Prototype prototype=new Prototype(); prototype.mid=mid; prototype.mname=mname; prototype.mYears=new ArrayList<>(mYears); return prototype; } }
创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
除了单例和原型非常实用和典型外,其他没什么需要注意的。
其他要不使用场合不常见,如抽象工厂,或者不典型,你用都用了,也没觉得是什么模式。如建造者。
2个难点的,不常用。3个简单的,非常常见。