原型模式(Prototype Pattern)

文档地址:《设计模式之禅》​​​​​​​

切入故事: 个性化电子账单

定义: Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类, 并且通过拷贝这些原型创建新的对象。 )

通用类图:

        

优点:

        1: 性能优良, 原型模式是在内存二进制流的拷贝

        2: 逃避构造函数的约束

缺点:

        1: 逃避构造函数的约束

使用场景:

        1: 资源优化场景 通俗讲类初始化需要消化非常多的资源

        2: 性能和安全要求的场景;通俗讲通过new产生一个对象需要非常繁琐的数据准备或访问权限

        3: 一个对象多个修改者的场景

扩展:

         浅拷贝和深拷贝:浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。      

个人总结:

        本质是拷贝,不过需要实现 Cloneable标志接口,且需重写Object类的clone方法,把clone的作用域提升到publice,需注意该拷贝是在内存二进制中进行,构造函数不会被执行。

        使用原型模式时引用的成员变量必须满足两个条件才不会被拷贝: 一是类的成员变量, 而不是方法内变量; 二是必须是一个可变的引用对象

        要使用clone方法, 类的成员变量上不要增加final关键字.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值