美文网首页
原型模式(2)-克隆羊

原型模式(2)-克隆羊

作者: Shaw_Young | 来源:发表于2020-11-30 01:39 被阅读0次

原型模式-基本介绍

基本介绍

  1. 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象
  2. 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节
  3. 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型拷贝它们自己来实施创建,即对象.clone()
  4. 形象的理解:孙大圣拔出猴毛,变出其它孙大圣
package com.young.prototype.improve;

/**
 * @author Shaw_Young
 * @date 2020/10/5 22:45
 */
public class Sheep implements Cloneable {

    private String name;
    private int age;
    private String color;

    public Sheep(String name, int age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public String toString() {
        return "Sheep{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", color='" + color + '\'' +
                '}';
    }

    /**
     * 克隆该实例,使用默认的clone方法来完成
     */
    @Override
    protected Object clone() {
        Sheep sheep = null;
        try {
            sheep = (Sheep) super.clone();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return sheep;
    }
}
package com.young.prototype.improve;

/**
 * @author Shaw_Young
 * @date 2020/10/5 23:15
 */
public class Client {

    public static void main(String[] args) {
        Sheep sheep = new Sheep("tom", 1, "白色");
        Sheep sheep1 = (Sheep) sheep.clone();
        Sheep sheep2 = (Sheep) sheep.clone();
        Sheep sheep3 = (Sheep) sheep.clone();
        Sheep sheep4 = (Sheep) sheep.clone();
        Sheep sheep5 = (Sheep) sheep.clone();
        System.out.println(sheep);
        System.out.println(sheep1);
        System.out.println(sheep2);
        System.out.println(sheep3);
        System.out.println(sheep4);
        System.out.println(sheep5);
    }

}

相关文章

  • 原型模式(2)-克隆羊

    原型模式-基本介绍 基本介绍 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这...

  • 原型模式(1)-克隆羊

    克隆羊问题 现在有一只羊tom,姓名为:tom,年龄为:1,颜色为:白色,请编写程序创建和tom羊属性完全相同的1...

  • js集成

    原始继承模式--原型链 2:借用构造函数 3:共享构造原型 4:圣杯模式原型链; 构造函数; 共享原型; 圣杯模式...

  • 03-原型模式

    原型模式 : 1)原型模式是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型 创建新的对象。2)原型模式是一...

  • js面向对象设计模式

    1、工厂模式 2、构造函数模式 3、原型模式 4、组合使用构造函数模式和原型模式 5、动态原型模式 6、寄生构造函...

  • 学习笔记2020-05-13

    今天学习了: 1、原型模式 2、KNN 3、空气炸锅 4、苦瓜炒鸡蛋没做好 1、设计模式-原型模式 原型模式,就是...

  • 设计模式 -- 原型模式

    1.原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2.原型模式优势 原型模式是一种创...

  • js 集成模式 07-24

    **原始继承模式--原型链 2:借用构造函数 3:共享构造原型 4:圣杯模式**一:原型链; 二:构造函数; 三:...

  • JavaScript创建对象

    创建对象 1.工厂模式 2.构造函数模式 3.原型模式 4.组合使用构造函数模式和原型模式 5.动态原型模式 6....

  • 创建对象方法

    (1)工厂模式 (2)构造函数模式 (3)原型模式 (4)组合使用构造函数模式和原型模式 (1)工厂模式:缺点:不...

网友评论

      本文标题:原型模式(2)-克隆羊

      本文链接:https://www.haomeiwen.com/subject/pvjzuktx.html