当前位置:   article > 正文

原型模式-创建型--设计模式-深拷贝-浅拷贝_原型设计深拷贝的实现

原型设计深拷贝的实现

原型模式介绍

  1. 原型模式(Prototype模式)指的是:用原型示例值指定创建的对象,并通过拷贝这些原型,创建新的对象。
  2. 原型模式是一种创建型设计模式,允许一个对象在创建另一个可定制的对象,无需知道如何创建的细节。
  3. 工作原理:通过将一个原型对象传给那个要发懂创建的对象,这个要发动创建的对象通过请求原型对象拷贝它自己来实施创建,即对象.clone()

案例分析

克隆羊的问题:
现在有一只羊,姓名为:Tom年龄为1,颜色为:白色,请编写程序创建和Tom阳属性完全相同的10只羊。
最简单的办法就是new10只相同的对象即可

public class Client {
    public static void main(String[] args) {
        Sheep sheep = new Sheep("tom", 1, "白色");
        Sheep sheep1 = new Sheep(sheep.getName(), sheep.getAge(), sheep.getColor());
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

优缺点:

  1. 优点就是比较好理解,简单易操作
  2. 在创建对象时,总是需要重新获取原始对象的属性,如果创建的对象比较复杂时,效率较低。
  3. 总是需要重新初始化对象,而不是动态地获得对象运行时的状态,不够灵活。

改进思路 :
Java中Object类是所有类的基类,Object类提供了一个clone()方法该方法可以将Java对象赋值一份,但需要实现clone的Java类必须实现一个接口Cloneable,该接口表示该类具有能够被复制的能力——原型模式

在这里插入图片描述
类图说明:

  1. Prototype:原形类,声明一个克隆自己的接口
  2. ConcretePrototype1:具体的原型类,实现一个克隆自己的操作
  3. Client:让一个原型对象克隆自己,从而创建一个新的对象(属性一样)

使用原型模式解决

使用原型模式改进传统方式,让程序具有更高的效率和扩展
在这里插入图片描述
上面我们让Sheep类继承了Cloneable然后重写其中的Clone()方法,之后在事项刚开始的创建10只相同的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/727378
推荐阅读
相关标签