原型模式,以及4中创建模式总结。

就是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个简单的,非常常见。

posted @ 2019-07-04 11:54  琴鸟  阅读(175)  评论(0编辑  收藏  举报