お待ちください...

小波Note

四川 · 成都市11 ℃
日本語

Java Prototype

成都 (cheng du)2024/8/26 18:08:431.36k見積もり読書時間 4 分お気に入りCtrl + D / ⌘ + D
cover
IT FB(up 主)
バックエンド開発エンジニア

プロトタイプパターンは、オブジェクトを複製して新しいオブジェクトを作成するためのデザインパターンです。このパターンは、オブジェクトの構築が高価または複雑な場合に特に有用です。

定义原型接口

java
        public interface Prototype extends Cloneable {
    Prototype clone();
}

    

创建具体原型类

java
        public class ConcretePrototype implements Prototype {
    private String name;

    public ConcretePrototype(String name) {
        this.name = name;
    }

    @Override
    public Prototype clone() {
        try {
            return (Prototype) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
            return null;
        }
    }

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "ConcretePrototype{name='" + name + "'}";
    }
}

    

使用原型模式

java
        public class PrototypePatternDemo {
    public static void main(String[] args) {
        ConcretePrototype prototype1 = new ConcretePrototype("Prototype 1");
        ConcretePrototype prototype2 = (ConcretePrototype) prototype1.clone();

        System.out.println(prototype1);
        System.out.println(prototype2);

        prototype2.setName("Prototype 2");
        System.out.println(prototype1);
        System.out.println(prototype2);
    }
}