设计模式演化之原型模式

定义

通过拷贝已知对象创建新的一摸一样的对象

演化

1.先准备一个User数据类

public class User {
   
    public int id;
    public String nickName;
    public String realName;
    public int gender;
    public String phoneNumber;
    public String idcard;
    public String phoneZone;
}

2.在我们平时所接触的网站和APP中,几乎都有用户资料管理的功能。当用户修改资料时,修改了一半放弃是常有的事情,这时需要弹窗提示用户是否保存已经修改信息。那么如何判断用户的资料已经发生了修改呢?又如何在用户选择放弃时恢复到初始状态呢?

解决办法的是:备份。重新创建一个User对象,它的属性与初始状态一模一样。当需要判断用户信息是否发生改变时,可以通过比较两个对象的属性进行判断。当用户放弃修改时,直接使用备份对象的数据即可。

原型模式的思想十分简单,需要遵循以下原则:

  • 新创建的对象属性必须与原对象完全一致,但两者并非同一对象。
  • 对其中一个进行修改时,另一个对象应该完全不受影响。

实现Cloneable接口

1.Java提供了一个Cloneable接口来辅助对象的克隆,

public class User implements Cloneable{
   
    public int id;
    public String idCard;
    public String nickName;
    
    @Override
    public Object clone() {
   
        User user= null;
        try {
   
            user= (User)super.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值