概述
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
适用性
1.当一个系统应该独立于它的产品创建、构成和表示时。
2.当要实例化的类是在运行时刻指定时,例如,通过动态装载。
3.为了避免创建一个与产品类层次平行的工厂类层次时。
4.当一个类的实例只能有几个不同状态组合中的一种时。
建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
参与者
1. Prototype
声明一个克隆自身的接口。
2. ConcretePrototype
实现一个克隆自身的操作。
3. Client
让一个原型克隆自身从而创建一个新的对象。
示例:
package com.sql9.created;
// Prototype
abstract class Prototype implements Cloneable
{
private String _name;
public void setName(String name)
{
_name = name;
}
public String getName()
{
return _name;
}
public Object clone()
{
try
{
return super.clone();
}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
}
}
// Concrete Prototype
class TrainPrototype extends Prototype
{
public TrainPrototype(String name)
{
setName(name);
}
}
public class PrototypeTest
{
public static void main(String[] args)
{
Prototype prototype = new TrainPrototype("北方火车");
Prototype p2 = (Prototype)prototype.clone();
System.out.println("prototype name: " + prototype.getName());
System.out.println("p2 name: " + p2.getName());
}
}
结果:prototype name: 北方火车
p2 name: 北方火车
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7104628658411459";
/* wide1 */
google_ad_slot = "8564482570";
google_ad_width = 728;
google_ad_height = 90;
//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
分享到:
相关推荐
### 韩顺平_Java设计模式笔记知识点详解 #### 1. Java设计模式内容介绍 ##### 1.1.1 先看几个经典的面试题 - **原型设计模式问题** - **UML类图**:原型模式的核心在于定义了一个`Prototype`接口,该接口声明了...
在《23个设计模式图解--学习笔记》中,我们探讨了这些模式,以便于理解和应用到实际开发中。以下是这23个设计模式的详细说明: 1. **工厂方法**(Factory Method):定义一个用于创建对象的接口,让子类决定实例化...
创建型模式主要关注对象的创建,它们提供了一种方式来封装对象的创建过程,使得代码更加灵活,易于扩展。 1. 抽象工厂(Abstract Factory)模式:抽象工厂提供一个接口,用于创建一系列相关或相互依赖的对象,而...
Factory Method模式是一种创建型模式,它定义一个用于创建对象的接口,让子类决定实例化哪一个类。这样,工厂方法就把类的实例化推迟到子类中进行,增强了系统的灵活性和扩展性。 3. 原型模式(Prototype): ...
Spring框架中,`prototype`作用域的bean创建就是原型模式的应用,例如`<bean id="id01" class="com.atguigu.spring.bean.Monster" scope="prototype"/>`,Spring会为每次请求创建一个新的bean实例。 设计模式的七大...
1. **创建型模式**:专注于对象的创建机制,确保系统在合适的时机创建正确的对象。 - **单例模式**(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 - **工厂方法模式**(Factory Method):定义一...
创建型模式关注于对象的创建过程,它们帮助我们控制实例化过程,减少代码间的耦合。主要分为五种:工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(Singleton)、建造者\Builder、原型\(Prototype\)。...
首先,23种设计模式按照其作用可以分为三大类:创建型模式、结构型模式和行为型模式。 1. **创建型模式**(Creational Patterns): - 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 - ...
- 创建型模式:如单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)和原型(Prototype)。它们主要关注对象的创建过程,使得代码更加灵活,易于扩展。 - 结构型...
- **创建型模式**:如单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)和原型(Prototype),它们主要关注对象的创建过程。 - **结构型模式**:如适配器...
1. 创建型模式:如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这些模式关注对象的创建,旨在降低对象的创建过程与使用...
**创建型模式**(Creational Patterns):这类模式关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式...
#### 二、创建型模式 **1. 工厂模式(Factory)** - **定义**:提供创建对象的接口,通过工厂方法或抽象工厂的方式实现。 - **用途**:当一个类无法预知它所必须创建的对象的类的时候,或者当一个类希望由它的子类...
### 设计模式学习笔记 #### 引言 设计模式(Design Patterns)是在软件设计领域内广泛应用的一种实践指南,它提供了一系列解决常见问题的方案。设计模式可以被理解为面向对象软件设计的经验总结,是对特定面向对象...
这个压缩包文件包含了23种设计模式的学习笔记和源码,旨在帮助开发者深入理解并熟练运用这些模式。以下是对每种设计模式的详细解释,以及它们在Java编程中的应用。 1. **单例模式**:确保一个类只有一个实例,并...
学习笔记中提到了5种创建型模式: 1. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。笔记中列出了饿汉式、懒汉式、双重检测锁式、静态内部类和枚举类实现单例的方法,并探讨了防止...
1. **创建型模式**(Creational Patterns): - 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。 - 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一...
1. **创建型模式**(Creational Patterns):这类模式主要关注对象的创建,它们提供了一种在不指定对象具体类的情况下创建对象的方法。 - 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 - ...
工厂方法模式是设计模式中的创建型模式之一,它通过提供一个创建一系列相关或相互依赖对象的接口,但允许子类决定实例化哪一个类。 - **角色与结构** - **抽象工厂** (`Creator`): 声明了创建产品的接口。 - **...
创建型模式关注对象的创建过程,它们包括: 1. 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 2. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪个类。 3....