设计模式——原型模式

原型模式

介绍

原型模式属于五种创建模式中的一种。是用于创建重复的对象,同时又能保证性能的方式。该模式用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

结构

设计模式——原型模式

优点

  1. 使用原型模式创建对象比直接new一个对象性能上优异一些。因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流。
  2. 简化对象的创建,在原型模式中,创建对象变得简单许多。

缺点

  1. 每一个类都配置一个 clone 方法。
  2. 当类已存在后难以新增clone操作,当内部包括一些不支持拷贝或有循环引用的对象时,实现clone也变得困难。

拷贝

  • 浅拷贝:创建一个新对象,基本数据类型变量全部重新创建,而引用仍指向原对象。
  • 深拷贝:创建一个新对象,引用不再指向原对象。

使用场景

  1. 使用同一个类的大量对象。
  2. 初始化一个涉及复杂数据对象。
  3. 对对象的大量信息中的少量字段进行个性化设置

代码举例

public class ProtoTypeCitation {
    public static void main(String[] args) throws CloneNotSupportedException {
        citation obj1 = new people("小明","中国","杭州");
        obj1.display();
        people obj2 = (people) obj1.clone();
        obj2.setName("小红");
        obj2.display();
    }
}

//类
class people Cloneable {
    String name;
    String country;
    String city;

    citation(String name, String country, String city) {
        this.name = name;
        this.country = country;
        this.city = city;
        System.out.println("信息创建成功!");
    }

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

    String getName() {
        return (this.name);
    }

    void display() {
        System.out.println(name + country + city);
    }

    public Object clone() throws CloneNotSupportedException {
        System.out.println("拷贝成功!");
        return (people) super.clone();
    }
}

总结

原型模式的本质就是clone,通过clone解决构建复杂对象的资源消耗问题,提升对象构建的效率。同时还有保护性拷贝的功能。通过返回拷贝对象的形式来实现只读限制。

型模式的本质就是clone,通过clone解决构建复杂对象的资源消耗问题,提升对象构建的效率。同时还有保护性拷贝的功能。通过返回拷贝对象的形式来实现只读限制。

上一篇:Centos7配置静态IP地址的方法


下一篇:centos7配置链路聚合