Android设计模式 ~~~ 原型模式

一.原型模式的定义:

用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

二.原型模式的使用分类:

1.浅拷贝:

这种拷贝不是将原始对象的所有字段重新构造一份,而是副本对象引用原始对象的字段。

2.深拷贝:

将原始对象的所有字段都重新构造一份。

三.使用方式:

1> 模型通过实现Cloneable接口

2> 重写clone方法(注意:clone()是继承自Object的 )

例如:浅拷贝:

/**
 * Created by Long on 2016/8/31.
 */
public class Domain implements Cloneable {

   private String name ;
    private String age;

    @Override
    protected Domain clone()  {

        Domain domain = null ;

        try {
            domain = (Domain) super.clone();

        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return domain ;
    }

}

四.使用场景:

大部分安卓程序员都遇到过这样的场景:当修改个人资料,并且需要进行网络请求,而在网络请求之前需要对一个对象进行赋值操作(这时本地对象已经变了),如果网络请求修改成功还好,但是如果失败了,那会出现什么情况呢? 修改操作失败,但是本地数据却改变了!! 这是决不允许的!

那么有什么好的解决办法呢?

clone正是解决这样的情况好办法,首先,clone一个这样的对象,然后修改这个clone对象的赋值,如果网络请求成功了,那么把这个clone对象赋值给我们本地保存的对象,失败则不用做操作!

这样就很简单了,而且clone也很高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值