`

《设计模式》之八:原型模式

阅读更多

Prototype Pattern 原型模式的定义如下:

Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

原型模式简单程度仅次于单例模式和迭代器模式,其核心是一个clone方法

 

原型模式通用代码:

public class PrototypeClass implements Cloneable {
    
    @Override
    public PrototypeClass clone() {
        PrototypeClass prototype = null;
        try {
            prototype = (PrototypeClass) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return prototype;
    }
}

 

原型模式优点:

1,性能优良

原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量对象的时候,原型模式可以更好的体现优势

2,逃避构造函数的约束

 

原型模式使用场景:

1,资源优化

类初始化需要消耗很多资源,包括书籍和硬件资源

2,性能和安全性场景

3,一个对象多个修改者的场景

 

在实际项目中,原型模式通常和工厂方法模式一起配合使用,通过clone方法创建一个对象,然后由工厂方法提供给调用者。

 

浅拷贝和深拷贝

 

对象的clone与对象内的final关键字是有冲突的

 

prototype pattern 可以这样理解:

一个对象的产生可以不由零起步,直接从一个已经具有一定雏形的对象克隆,然后再修改为生产需要的对象。

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    实验六:原型模式.rar

    原型模式是其中一种经典的设计模式,它属于创建型模式,主要应用于对象复制或克隆场景。在这个实验六:“原型模式.rar”中,我们将深入理解并实践如何在Java中实现原型模式。 首先,原型模式的核心思想是通过拷贝已...

    设计模式之原型模式

    **原型模式(Prototype Pattern)**是软件设计模式中的结构型模式之一,主要用来简化实例化过程,减少类的创建。在原型模式中,一个对象可以被用作创建其他新对象的模板,通过复制已有对象来创建新对象,而不是通过new...

    android设计模式之原型模式

    本文将深入探讨Android设计模式中的“原型模式”(Prototype Pattern),并结合提供的"prototype"压缩包中的示例代码进行解析。 原型模式是一种创建型设计模式,它的主要思想是通过复制已有对象来创建新对象,而...

    设计模式的原型模式的例子

    原型模式(Prototype Pattern)是软件设计模式中的一种结构型模式,它的主要目的是通过复制已有对象来创建新对象,从而减少创建新对象的成本。在原型模式中,类的实例化过程被替换为对已有实例的克隆操作,尤其适用...

    iOS设计模式之原型模式

    本文将深入探讨一种常见的设计模式——原型模式(Prototype Pattern),并结合具体的iOS应用场景进行解析。 原型模式是一种创建型设计模式,它的主要思想是通过复制已有对象来创建新对象,而不是通过构造函数来创建...

    Java 经典设计模式讲解以及项目实战

    10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+策略+工厂方法 3 动态代理+Spring AOP 4 责任链模式进阶 Spring Framework设计模式 Spring 设计模式

    设计模式之原型模式Java实现和类设计图

    原型模式(Prototype Pattern)是其中一种行为设计模式,主要用于对象创建。它通过复制已有对象来创建新对象,而不是通过传统的构造函数来创建。在Java中,原型模式可以有效地提高性能,特别是在创建复杂对象时。 #...

    C语言:原型模式及举例

    原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来创建新对象,而无需知道具体创建过程。在C语言中,由于没有内置的克隆机制,我们需要自定义函数来实现对象的复制。这一模式常用于减少...

    JAVA设计模式chm文档

    设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...

    《Java设计模式》课后习题参考答案-刘伟(20180723).pdf

    JDK中许多类和方法都使用了设计模式,这些模式的应用帮助实现了代码的高内聚、低耦合,提高了代码的可维护性和扩展性。下面介绍几种常见的设计模式及其在JDK中的应用实例: a) 抽象工厂模式(AbstractFactory) ...

    设计模式C++学习之原型模式(Prototype)

    本篇文章将深入探讨“原型模式(Prototype)”这一经典的设计模式,它是面向对象设计的一个重要概念,尤其在C++编程中有着广泛的应用。 原型模式是一种创建型设计模式,它的核心思想是通过复制已有对象来创建新对象,...

    原型设计模式prototype

    **原型设计模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过构造函数来实例化新对象。在面向对象编程中,当我们需要频繁地创建具有相同或相似属性的对象时,...

    php设计模式案例详解

    17. **原型设计模式**:通过复制现有的对象来创建新对象,避免了创建新对象的复杂过程。 18. **代理设计模式**:为其他对象提供一种代理以控制对这个对象的访问。 19. **工厂方法设计模式**:定义一个创建对象的...

    设计模式之Prototype(原型)

    在"TestPrototype"这个压缩包中的文件可能是用来测试原型模式的一个实例。它可能包含了一个或多个实现了Prototype接口的类,以及一个测试类用于演示如何使用这些原型对象进行复制。测试类可能会创建一个原型对象,对...

    java之23种设计模式完整代码

    这里我们探讨的“Java之23种设计模式完整代码”是一份宝贵的资源,它包含了所有23种经典设计模式的实现示例。这份资料能够帮助开发者深入理解每种设计模式的概念、应用场景以及它们之间的差异。 设计模式是经过时间...

Global site tag (gtag.js) - Google Analytics