原型模式 private static Map<String,Prototype> map = new HashMap<String,Prototype>();

public class PrototypeManager {
/**
* 用来记录原型的编号和原型实例的对应关系
*/
private static Map<String,Prototype> map = new HashMap<String,Prototype>();
/**
* 私有化构造方法,避免外部创建实例
*/
private PrototypeManager(){}
/**
* 向原型管理器里面添加或是修改某个原型注册
* @param prototypeId 原型编号
* @param prototype 原型实例
*/
public synchronized static void setPrototype(String prototypeId , Prototype prototype){
map.put(prototypeId, prototype);
}
/**
* 从原型管理器里面删除某个原型注册
* @param prototypeId 原型编号
*/
public synchronized static void removePrototype(String prototypeId){
map.remove(prototypeId);
}
/**
* 获取某个原型编号对应的原型实例
* @param prototypeId 原型编号
* @return 原型编号对应的原型实例
* @throws Exception 如果原型编号对应的实例不存在,则抛出异常
*/
public synchronized static Prototype getPrototype(String prototypeId) throws Exception{
Prototype prototype = map.get(prototypeId);
if(prototype == null){
throw new Exception("您希望获取的原型还没有注册或已被销毁");
}
return prototype;
}
}

原型模式 private static Map<String,Prototype> map = new
HashMap<String,Prototype>();,码迷,mamicode.com

原型模式 private static Map<String,Prototype> map = new
HashMap<String,Prototype>();

时间: 2024-08-08 13:59:08

原型模式 private static Map<String,Prototype> map = new HashMap<String,Prototype>();的相关文章

【设计模式】—— 原型模式Prototype

前言:[模式总览]——————————by xingoo 模式意图 由于有些时候,需要在运行时指定对象时哪个类的实例,此时用工厂模式就有些力不从心了.通过原型模式就可以通过拷贝函数clone一个原有的对象,给现在的对象使用,从而创建更多的同类型的对象. 模式结构 [简单原型模式]用于原型的版本不多的时候 [登记模式的原型模式]如果原型的实现很多种版本,那么通过一个登记管理类,可以方便的实现原型的管理. Prototype 原型接口,定义原型的结构. ConcretePrototype 原型的具体

深入浅出设计模式 ------ Prototype(原型模式)之深度克隆

继上篇深入浅出设计模式 ------ Prototype(原型模式)的浅克隆实现, 本文进入Prototype(原型模式)的进阶篇----深度克隆. 深度克隆 ---- 序列化方式实现 把对象写到流里的过程是序列化(Serilization)过程,而把对象从流中读出来的过程则叫做反序列化(Deserialization).写在流里的是对象的一个克隆(新的, 独立的), 而原对象仍存在于JVM内存模型里.因此, 以下代码采用序列化方式实现深度克隆. 第一步: 将上篇的代码做些许改动, 加入对象引用

深入浅出设计模式 ------ Prototype(原型模式)

一. 定义  用原型实例指定创建对象的种类. 并且通过拷贝这些原型创建新的对象. 二. 结构  三. 参与者 Prototype : 克隆自身的接口(如代码实现中的FruitPrototype) PrototypeTool : 管理Prototype的工具类, 存储原型复制自身到数据接口(如FruitTool) ConcretePrototype : 实现一个克隆自身的操作(如ConcteteFruitPrototype) Client : 测试类 四. 适用性 -- 多用于创建复杂的或者耗时的

设计模式之原型模式(Prototype)详解及代码示例

一.原型模式的定义与特点 原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象.它属于创建型设计模式,用于创建重复的对象,同时又能保证性能(用这种方式创建对象非常高效). 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆.当直接创建对象的代价比较大时,则采用这种模式.例如,一个对象需要在一个高代价的数据库操作之后被创建.我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用.

Android 原型模式

原型的是一种创建的设计模式,主用来创建的复杂的对象和构建耗时的实例.通过克隆已有的对象来创建的新的对象,从而节省时间和内存. 感谢 <JAVA与模式>之原型模式 原型的模式介绍 原型模式的uml图 - Client 客户端类调用的类 - Prototype 提供clone()等方法的原型抽象接口 - ConcretePrototype 具体的原型的函数 原型的栗子 案例分析:多账号系统管理 我们需要做一个的类似的多用户登陆的简单系统,我们只能够在我的里面去创建的用户,并修改用户的属性,再其他的

设计模式--创建模式--原型模式

一.基本概念 1.原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象 . 2.角色: A.抽象原型(Prototype)角色:此角色定义了的具体原型类所需的实现的方法,本例子直接精简为类. B.客户(Client)角色:客户类提出创建对象的请求:也就是我们用户使用复制粘贴的功能. 3.其实原型模式的核心就是Prototype(抽象原型),他需要继承Cloneable接口,并且重写Object类中的clone方法即可. 二.简单例子 A.抽象原

1.4(设计模式)原型模式

原型模式,通过拷贝创建好的实例对象来创建对象,用于创建重复的对象,同时保持性能. 先将Shpae抽象类实现Cloneable接口,重写clone方法,用于克隆对象. Circle类继承Shape抽象类. ShapeCache中的load方法创建实例,并将实例放入HashMap. 后续获取对象,通过对象的key从HashMap中获取对象,并调用clone方法返回拷贝对象. Shape抽象类,实现clone方法,克隆对象. public abstract class Shape implements

从王者荣耀看设计模式(十七.原型模式)

从王者荣耀看设计模式(原型模式) 一.简介 王者荣耀包含有很多的玩法,其中有一种游戏模式只在周六和周日开放,那就是--克隆模式.与常规的游戏双方阵营只允许出现单一英雄不同,在克隆模式中,双方各选择一个英雄进行克隆,换句话说,一个阵营的五个人操作的五个相同的英雄 二.模式动机 在软件系统中,有些对象的创建过程比较复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的意图所在. 三.原型模式 原型模式

图解Java设计模式之原型模式

图解Java设计模式之原型模式 克隆羊的问题 原型模式 - 基本介绍 原型模式在Spring框架中源码分析 浅拷贝的介绍 深拷贝基本介绍 克隆羊的问题 现在有一只羊tom,姓名为 : tom,年龄为 :1,颜色为 :白色,请编写程序创建和tom羊属性完全相同的10只羊. 传统方式解决克隆羊的问题 package com.example.demo.prototype; public class Sheep { private String name; private int age; privat