首页 > 其他分享 >原型模式-06

原型模式-06

时间:2023-06-18 21:46:31浏览次数:39  
标签:06 实例 创建 模式 复制 原型

概述

原型模式 (prototype pattern) 是将某个类实例作为原型,对这个原型进行复制得到相同类型的多个实例。

优点:当需要创建的类型比较复杂时,使用原型模式可以简化创建过程。
缺点:每个类都需要有一个克隆方法,对于深复制比较复杂。

Java 中,实现 Cloneable 接口可以使用 clone() 方法实现浅复制;实现 Serializable 接口通过序列化的方式可以实现深复制。

图示:
image

还可以创建另外一个类,称为原型管理器,存储每一个原型对象,需要创建某个原型对象的实例时,从该类中取出对应的原型进行复制。

参考

[1]. 刘伟, 设计模式. 2011.

标签:06,实例,创建,模式,复制,原型
From: https://www.cnblogs.com/xdreamc/p/16460322.html

相关文章

  • Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)
    写在前面工作中遇到,简单整理理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧——赫尔曼·黑塞《德米安》当前系统环境系统环境┌......
  • 2023跟我一起学设计模式:抽象工厂模式( Abstract Factory)
    抽象工厂模式(AbstractFactory)意图抽象工厂模式是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。问题假设你正在开发一款家具商店模拟器。你的代码中包括一些类,用于表示:一系列相关产品,例如椅子Chair、沙发Sofa和咖啡桌Coffee­Table。系列产品的不......
  • 2023跟我一起学设计模式:Golang 抽象工厂模式讲解和代码示例
    Golang抽象工厂模式讲解和代码示例抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。抽象工厂定义了用于创建不同产品的接口,但将实际的创建工作留给了具体工厂类。每个工厂类型都对应一个特定的产品变体。在创建产品时,客户端代码调用的是工厂对象的......
  • 2023-06-18:给定一个长度为N的一维数组scores, 代表0~N-1号员工的初始得分, scores[i] =
    2023-06-18:给定一个长度为N的一维数组scores,代表0~N-1号员工的初始得分,scores[i]=a,表示i号员工一开始得分是a,给定一个长度为M的二维数组operations,operations[i]={a,b,c}。表示第i号操作为:如果a==1,表示将目前分数<b的所有员工,分数改成b,c这个值无用,如果a==2,表示将......
  • AtCoder Beginner Contest 306 题解 A - E
    A-Echo题目大意给定一个字符串,需要把它每个字符重复输出。解题思路可以读完整个字符串,也可以按照字符读一个输出两个。ACCode#include<iostream>#include<algorithm>#include<cstring>#include<numeric>#defineendl'\n'#defineiosios::sync_with_stdio(fals......
  • Python编程和数据科学中的大数据分析:如何从大量数据中提取有意义的信息和模式
    目录《Python编程和数据科学中的大数据分析:如何从大量数据中提取有意义的信息和模式》引言大数据时代已经来临,随着互联网和物联网的普及,海量数据的产生和存储已经成为一种普遍的现象。这些数据包含各种各样的信息,如文本、图像、音频和视频等,而大数据分析则是将这些海量数据中提......
  • 2023-06-18《计算方法》- 陈丽娟 - 方程的近似解法.md
    2023-06-18《计算方法》-陈丽娟-方程的近似解法Matlab计算方法二分法迭代法牛顿法在这里我先跳过了曲线拟合这一部分,这是因为我主要想快速切入到数值微积分部分,因此直接直接来到了方程的近似解部分。一、二分法二分法对如下问题进行求解:设在区间上连续,且,求使得.这里给......
  • C++家谱管理系统[2023-06-18]
    C++家谱管理系统[2023-06-18]小组项目二实验题目:家谱管理系统实验目的:1、掌握树以及二叉树的定义;2、掌握树以及二叉树的基本操作,如建立、查找、插入和删除等。实验要求:小组合作方式,共同讨论完成该任务。实验内容:家谱管理系统是查询家谱信息必不可少的一部分,利用家谱管理系......
  • Adobe Experience Design 2022v45.0.62【XD原型设计软件】中文直装版安装教程
    AdobeXD45是一款功能强大的原型开发工具,它具有非常专业和丰富的功能,可以帮助用户方便地进行内容分享和布局,样机设计软件提供的功能可以有效地提高用户的工作效率,减少用户工作时间软件支持云中的文件管理,使用者可以把文件上载到软件的云内存中,从而使用户无论在任何设备上登陆该软件......
  • log4cxx的使用模式
    log4cxx的使用模式(金庆的专栏)==初始化配置==Main.cpp中初始化配置.如果不需要监视配置文件并自动重新配置,就不需要调用configureAndWatch().执行目录下的log4j.properties是会自动读取的。#include<log4cxx/propertyconfigurator.h>intma......