原型模式

一.一般实现

1.1 创建对象

    public class Entity {public Entity(){System.out.println("create entity ...");}}

1.2 调用

    public static void main(String[] args) {new Entity();}

1.3 输出

    create entity ...

1.4 缺点

  1. 如需大量创建某对象,对象创建效率,性能低.
  2. 创建对象收访问权限的限制.

二.原型模式

2.1 定义

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

2.2 条件

  1. 实现Cloneable接口.
  2. 重写Object的clone方法.

2.3 浅拷贝与深拷贝

  1. 浅拷贝:只拷贝对象中的基本数据类型和String类型.
  2. 深拷贝:可拷贝对象中的对象类型,集合类型(集合类基本都有自己的clone方法).

三.代码实现

3.1 创建接口

    public interface IEntity extends Cloneable{Object clone();}

3.2 创建对象

    public class Entity implements IEntity{public Entity(){System.out.println("create entity ...");}@Overridepublic Object clone() {Entity entity = null;try {entity = (Entity) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}return entity;}}

3.3 调用

    public static void main(String[] args) {IEntity entity1 = new Entity();IEntity entity2 = (IEntity) entity1.clone();System.out.println(entity1.hashCode());System.out.println(entity2.hashCode());}

3.4 输出

    create entity ...1956725890356573597

四.源码

https://github.com/Seasons20/DisignPattern.git

END

原型模式(Prototype) 1相关推荐

  1. 原型模式(ProtoType) - Java里的对象复制

    一, 引用的复制和对象复制. 在编程中, 我们有时会用两个引用指向同一个对象. 例如: ArrayList a = new ArrayLIst(); ArrayList b = a; 看起来好像有a, ...

  2. 乐在其中设计模式(C#) - 原型模式(Prototype Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 原型模式(Prototype Pattern) 作者:webabcd 介绍 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象. ...

  3. 原型模式-prototype

    一.什么是原型模式 Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例.使用Prototype模式创建的实例,具有与原型一样的数据. 二.原型模式的特点 1.由原型对 ...

  4. C++设计模式——原型模式(Prototype Pattern)

    C++设计模式--原型模式(Prototype Pattern) 微信公众号:幼儿园的学霸 目录 文章目录 C++设计模式--原型模式(Prototype Pattern) 目录 定义 代码示例 普通 ...

  5. 原型模式(Prototype Pattern)

    原型模式(Prototype Pattern) 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. ...

  6. Java设计模式--原型模式Prototype

    原型模式Prototype 原型模式使得用户可以通过复制对象样本来创建新对象.与通过调用构造函数创建对象相比,二者主要区别在于:通过复制创建的新对象一般会包含原始对象的某些状态. 原型模式属于对象的创 ...

  7. 设计模式(23):创建型-原型模式(Prototype)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  8. 设计模式之原型模式(Prototype)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Sin ...

  9. 设计模式之原型模式prototype

    1.原型模式的使用和本质.以及优势: a.通过 new 产生一个对象需要非常繁琐的数据准备或者访问权限,则可以使用原型模式. b.原型模式的使用就是 java 中的克隆技术,以某个对象为原型,复制出新 ...

  10. 设计模式---原型模式(Prototype Pattern)

    在编程中有时候我们会发现,当我们需要一个实例,可是这个实例的创建过程十分复杂,在执行过程中 会消耗大量的时间,同时创建第一个实例和创建第二个时间的初始化信息并未改变.在此种情况下,直接New 一个实例 ...

最新文章

  1. Java中对象的实例化顺序
  2. 如何对付费广告流量进行标记?
  3. mysql5.7 读写分离_mysql5.7的主从复制+读写分离
  4. mysql怎么对比表结构_mysql查看表结构2种方式对比
  5. 创建windows服务,定时监控网站应用程序池
  6. c语言float二进制输出代码_C语言学习笔记——学前知识概述
  7. 作者:孙卫强,博士,上海交通大学教授、博士生导师。
  8. 中文分词与马尔科夫模型之二(隐马尔科夫模型与维特比)
  9. STM32开发日记002:KEIL5安装教程
  10. 省级期刊发表价格具体分析
  11. 基于MIMO的无线携能通信系统优化问题的基础知识和研究方向
  12. QTP版“古城钟楼”---使用QTP完成微博定时发送脚本代码
  13. 淘气的小丁-抽奖小游戏
  14. spring源码:九大后置处理器
  15. 手机接收短信验证码生成(纯数字)
  16. Phobos Runtime Library
  17. Win32编程---在窗体添加一个按钮
  18. 光猫 DHCP服务器未响应,案例分享--光猫手工设置后死机的原因之一
  19. 自然语言处理(NLP): 12 BERT文本分类
  20. Python基础知识_列表(List)

热门文章

  1. 构造函数和复制函数java_用Java复制构造函数
  2. swift 对象转换_Swift类型转换–照原样,任何对象
  3. okhttp离线缓存_Android改造OkHttp离线缓存
  4. Java面试题:synchronized和对象的访问定位的两种方式
  5. TypeScript接口用法(基础)
  6. 关于appium中的Multiaction的用法
  7. JSOI 2008 【魔兽地图】
  8. 从荣耀小米扎堆“滑盖全面屏”,看国产手机的“取巧”式创新
  9. MicroPython实例之TPYBoard v102炫彩跑马灯WS2812B
  10. cpu out of order, 性能优化