[Java] [设计模式][ 创建型模式 ] [ 原型模式 ]

定义

用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
可以在类的属性特别多,但是又要经常对类进行拷贝的时候可以用原型模式,这样代码比较简洁,而且比较方便。
拷贝时要注意浅拷贝与深拷贝
Java中的clone

示例

 private HashMap getClonePointMap(Map map) {
        HashMap clone = new HashMap<>();
        if (map != null) {
            Iterator iterator = map.entrySet().iterator();
            while (iterator.hasNext()) {
                Map.Entry entry = (Map.Entry) iterator.next();
                String key = (String) entry.getKey();
                PointBean pointBean = (PointBean) entry.getValue();
                if (pointBean != null) {
                    //遍历map并将克隆对象放到新的map中
                    clone.put(key, pointBean.clone());
                } else {
                    clone.put(key, null);
                }
            }
        }
        return clone;
    }

Android中的实例

Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
//克隆副本
Intent copyIntent=(Intetn)shareIntent.clone();

生活中的形象案例

还记得每周工作周报么?
在使用某OA系统时,有些岗位的员工发现他们每周的工作都大同小异,因此在填写工作周报时很多内容都是重复的,为了提高工作周报的创建效率,大家迫切地希望有一种机制能够快速创建相同或者相似的周报,包括创建周报的附件。试使用原型模式对该OA系统中的工作周报创建模块进行改进。

重构

如果存在逐一去除某个对象的各项参数值,转而赋值给另一个对象身上时,便可使用原型模式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值