Java中除去有设计原则之外,还有23中设计模式。

这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题。

并且在这些模式中,可以说是将语言的使用体现的淋漓尽致。

那我们今天要学习  创建型模式  中的  原型模式  !

原型模式:

先来看一下这个的权威定义

来源:百度百科

从表面上看,创建对象,然后拷贝对象,但是,实际上就是如此。

把一个已经创建的实例作为最初的原型,然后复制这个对象,或得到另外一个和原型对象相同或者相似的新对象。用这样的方式去创建对象可以说非常的快、高效,而且不需要知道创建对象的细节。

当然,我们使用这样的模式也是有前提条件的,那就是创建那种复杂,或者很麻烦的对象的时候,创建好缓存上,然后用的时候直接使用它的复制。

原型模式的实现:

原型模式的实现,是要求要实现该模式的类实现一个接口,叫Cloneable,会英语的同学可能一下就明白了,就是克隆。

我们简单来用代码操作一下:

1.首先定义一个羊这么个抽象类,然后让这个羊类实现克隆。

羊有一个名字,可以说话。具体说啥让实现类来实现。再往下就是克隆的方法。

然后,我们创建一个喜羊羊和一个美羊羊,两个羊,并且去继承这个Sheep这个类:

接着,重点来了,我们来创建一个测试类,名字叫SheepTest,然后在类里面实例化他们,并将他们存储到一个Map集合当中。

再然后,我们写一个main方法,来做操作。

第一个方法是调用,createSheep(),假装这个方法里面呢是很复杂的一个创建过程。

实例化完成之后,我们再来写一个方法,这个方法是用来创建他们的克隆类。

写好之后,我们来main中进行调用。

相同的,美羊羊也可以调用,这样我们就实现了原型模式的最简单的应用。

深克隆与浅克隆:

上面看完之后,我们再来说说这个根深一步的东西,这个大家要好好去学习。

克隆,实际上就是我们Sheep实现的内个接口,就是克隆接口,但是克隆也区分层次,有深克隆和浅克隆,下面我们来说说深浅克隆。

浅克隆:什么叫浅克隆?浅克隆指的是创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。

实际上是一个新的对象,但是里面的属性还是用的以前的那些个。

深克隆:深克隆就是和浅克隆不一样的是,这个新的对象,里面的非基本类型属性,指向的是一个新的内存地址,并不是用的以前的那些个。

这里呢,我们只是简单的了解,并没有去做实现,有想知道的同学可以去网上搜索一下,我建议暂时可以不去研究,等你学习到了一定程度,再去接触这些内容,你可能会更好、更容易的理解他们。

Java23种设计模式——2.创建型模式之原型模式相关推荐

  1. 设计模式(创建型)之原型模式

    GOF 给原型模式 的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 在 C++和Java 中都提供了clone()方法来实现对象的克隆,但是在Java中必须要实现Clone ...

  2. 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

  3. GoF的23种设计模式之创建型模式的特点和分类

    创建型模式的主要关注点是"怎样创建对象?",它的主要特点是"将对象的创建与使用分离".这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关 ...

  4. Java23种设计模式——19.行为型模式之中介者模式

    Java中除去有设计原则之外,还有23中设计模式. 这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题. 并且在这些模式中,可以说是将语言的使用体现的淋 ...

  5. 备战面试日记(3.4) - (设计模式.23种设计模式之行为型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.12 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文 ...

  6. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

  7. 走穿java23种设计模式-15责任链模式详解

    走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...

  8. 走穿java23种设计模式--18中介者模式详解

    走穿java23种设计模式–18中介者模式详解 中介者模式也称调停者模式,是一种比较简单的模式. 一.中介者模式的现实场景 蔡良因为上次表白时对方只看重他的物质方面,所以他对女朋友这个问题有点失望.因 ...

  9. GOF23设计模式(创建型模式)工厂模式

    目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...

  10. Java设计模式之创建型:原型模式

    一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...

最新文章

  1. Java之戳中痛点之 synchronized 深度解析
  2. C++ warning:’xxx‘ has no out-of-line virtual method definitions...
  3. HashMap的7种遍历方式
  4. 工作196:注意接收数据的格式
  5. linux下的文件系统,Linux根文件系统(“/”文件系统)下的目录介绍
  6. java的学习步骤方法书籍大总结
  7. Bootstrap CSS 编码规范之简写形式的属性声明
  8. sqlalchemy_外键连接表
  9. yolo1-5系列算法备忘录
  10. scrapy 命令行基本用法
  11. 导出FLASH用反射的时候要注意的问题
  12. C语言学习系列(六)存储类
  13. 如何下载行政区划数据
  14. 物联网中的密码安全风险
  15. Android应用程序访问linux驱动第二步:实现并测试hardware层
  16. 快速理解卷积神经网络VGG16/VGG19,以及每个模块的作用及意义。
  17. win7系统激活(GPT分区)
  18. 主流的商业智能BI工具推荐,学会数据分析没难度
  19. RACK为TCP BBR提供动力源
  20. 《Kotlin极简教程》第1章 Kotlin简介

热门文章

  1. linux访问网络图片,linux网络图形监控方法
  2. jupyter notebook 拒绝连接 以及 查 IP
  3. 设计分享|基于单片机的计数器设计(汇编)
  4. 基数排序-LSD-golang
  5. 上海证券综合指数昨天成功击破1000点
  6. Robust regression(稳健回归)
  7. #创新应用#飞流下载:下载娱乐两不误
  8. docker安装oracle
  9. iphone7一晚上掉电50%_苹果7待机一晚掉电多少
  10. 在线qq的html代码,网页QQ