设计模式第五篇-创建型模式【原型模式】

2018-02-27  本文已影响6人  做个快乐的代码哥

设计模式案例分析-github

一、什么是原型模式?

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

  通俗理解: 根据一个对象克隆出另外一个对象,分为浅度克隆,深度克隆,核心本质就是拷贝数                           据。

二、案例?分析需求?

1、针对一个订单,如果购买的商品数量超过200个,就要按照每200个拆分为一个订单列表。

传统模式,见: 设计模式案例分析-github

2、原型克隆模式分为浅度克隆和深度克隆。

    浅度克隆模式是指: 当遇到克隆的对象存在属性引用时,克隆出来的对象与原对象使用相同的引用,会出现原型引用的属性修改了,克隆的对象引用属性也改了(即拷贝对象)

    深度克隆模式是指: 当遇到克隆的对象存在属性引用时,克隆出来的对象创建一个与原对象值一样的属性,但是不是同一个引用,即是完全的拷贝一个对象。(重写创建一个新的对象(虚拟机不支持,需要用户自己代码实现创建)

3、原型克隆模式角色划分?

 1)克隆接口-> 对应例子 IOrderCloneable

 2)具体克隆实现 -> 对应例子 PersonalOrder(EnterpriseOrder)

4、原型克隆模式 jdk提供的接口?

    1)要克隆的对象实现Cloneable接口,作为标识,表示是一个可克隆对象

    2) 重写clone方法,注意该clone方法是Object的方法

    3) 在clone方法中,创建新的对象,并且未新对象属性赋值

上一篇下一篇

猜你喜欢

热点阅读