【问题标题】:Java implementations of the Prototype Pattern原型模式的 Java 实现
【发布时间】:2008-10-23 09:34:17
【问题描述】:

Prototype 模式在 Java 平台上有哪些实现?

原型模式是软件开发中使用的一种创建型设计模式,当要创建的对象类型由原型实例确定时,原型实例被克隆以生成新对象。

Prototype based programming:

基于原型的编程是一种面向对象的编程风格,其中不存在类,行为重用(在基于类的语言中称为继承)是通过克隆作为原型的现有对象的过程来执行的。

实现应该知道有些 Java 对象是可变的,有些是不可变的(请参阅Mutable vs Immutable objects)。

【问题讨论】:

    标签: java oop design-patterns prototype-pattern


    【解决方案1】:

    据 Josh Bloch 和 Doug Lea 所说,Cloneable is broken。在这种情况下,您可以使用copy constructor

    【讨论】:

    • 感谢此链接 - 我还在问题中添加了对可变/不可变对象的引用。
    • Object.clone 坏了。但是手动克隆还是可以的。
    • 这个区别确实是我想要建议的。即Cloneable作为标记接口,void clone抛出CloneNotSupportedException
    【解决方案2】:

    Steve Yegge 描述了EclipseASTNode 实现

    【讨论】:

      【解决方案3】:

      Java 定义了Cloneable 接口,此处描述为JGuru

      Java 提供了一个名为 Cloneable 的简单接口,它提供了原型模式的实现。如果你有一个可克隆的对象,你可以调用它的 clone() 方法来创建一个具有相同值的对象的新实例。

      警告:见Cloneable is broken

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2017-07-18
        • 2013-06-16
        • 2011-06-10
        • 2019-09-21
        相关资源
        最近更新 更多