Java23种设计模式——2.创建型模式之原型模式
Java中除去有设计原则之外,还有23中设计模式。
这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题。
并且在这些模式中,可以说是将语言的使用体现的淋漓尽致。
那我们今天要学习 创建型模式 中的 原型模式 !
原型模式:
先来看一下这个的权威定义
来源:百度百科
从表面上看,创建对象,然后拷贝对象,但是,实际上就是如此。
把一个已经创建的实例作为最初的原型,然后复制这个对象,或得到另外一个和原型对象相同或者相似的新对象。用这样的方式去创建对象可以说非常的快、高效,而且不需要知道创建对象的细节。
当然,我们使用这样的模式也是有前提条件的,那就是创建那种复杂,或者很麻烦的对象的时候,创建好缓存上,然后用的时候直接使用它的复制。
原型模式的实现:
原型模式的实现,是要求要实现该模式的类实现一个接口,叫Cloneable,会英语的同学可能一下就明白了,就是克隆。
我们简单来用代码操作一下:
1.首先定义一个羊这么个抽象类,然后让这个羊类实现克隆。
羊有一个名字,可以说话。具体说啥让实现类来实现。再往下就是克隆的方法。
然后,我们创建一个喜羊羊和一个美羊羊,两个羊,并且去继承这个Sheep这个类:
接着,重点来了,我们来创建一个测试类,名字叫SheepTest,然后在类里面实例化他们,并将他们存储到一个Map集合当中。
再然后,我们写一个main方法,来做操作。
第一个方法是调用,createSheep(),假装这个方法里面呢是很复杂的一个创建过程。
实例化完成之后,我们再来写一个方法,这个方法是用来创建他们的克隆类。
写好之后,我们来main中进行调用。
相同的,美羊羊也可以调用,这样我们就实现了原型模式的最简单的应用。
深克隆与浅克隆:
上面看完之后,我们再来说说这个根深一步的东西,这个大家要好好去学习。
克隆,实际上就是我们Sheep实现的内个接口,就是克隆接口,但是克隆也区分层次,有深克隆和浅克隆,下面我们来说说深浅克隆。
浅克隆:什么叫浅克隆?浅克隆指的是创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。
实际上是一个新的对象,但是里面的属性还是用的以前的那些个。
深克隆:深克隆就是和浅克隆不一样的是,这个新的对象,里面的非基本类型属性,指向的是一个新的内存地址,并不是用的以前的那些个。
这里呢,我们只是简单的了解,并没有去做实现,有想知道的同学可以去网上搜索一下,我建议暂时可以不去研究,等你学习到了一定程度,再去接触这些内容,你可能会更好、更容易的理解他们。
Java23种设计模式——2.创建型模式之原型模式相关推荐
- 设计模式(创建型)之原型模式
GOF 给原型模式 的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 在 C++和Java 中都提供了clone()方法来实现对象的克隆,但是在Java中必须要实现Clone ...
- 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...
- GoF的23种设计模式之创建型模式的特点和分类
创建型模式的主要关注点是"怎样创建对象?",它的主要特点是"将对象的创建与使用分离".这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关 ...
- Java23种设计模式——19.行为型模式之中介者模式
Java中除去有设计原则之外,还有23中设计模式. 这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题. 并且在这些模式中,可以说是将语言的使用体现的淋 ...
- 备战面试日记(3.4) - (设计模式.23种设计模式之行为型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.12 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文 ...
- java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...
- 走穿java23种设计模式-15责任链模式详解
走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...
- 走穿java23种设计模式--18中介者模式详解
走穿java23种设计模式–18中介者模式详解 中介者模式也称调停者模式,是一种比较简单的模式. 一.中介者模式的现实场景 蔡良因为上次表白时对方只看重他的物质方面,所以他对女朋友这个问题有点失望.因 ...
- GOF23设计模式(创建型模式)工厂模式
目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...
- Java设计模式之创建型:原型模式
一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...
最新文章
- Java之戳中痛点之 synchronized 深度解析
- C++ warning:’xxx‘ has no out-of-line virtual method definitions...
- HashMap的7种遍历方式
- 工作196:注意接收数据的格式
- linux下的文件系统,Linux根文件系统(“/”文件系统)下的目录介绍
- java的学习步骤方法书籍大总结
- Bootstrap CSS 编码规范之简写形式的属性声明
- sqlalchemy_外键连接表
- yolo1-5系列算法备忘录
- scrapy 命令行基本用法
- 导出FLASH用反射的时候要注意的问题
- C语言学习系列(六)存储类
- 如何下载行政区划数据
- 物联网中的密码安全风险
- Android应用程序访问linux驱动第二步:实现并测试hardware层
- 快速理解卷积神经网络VGG16/VGG19,以及每个模块的作用及意义。
- win7系统激活(GPT分区)
- 主流的商业智能BI工具推荐,学会数据分析没难度
- RACK为TCP BBR提供动力源
- 《Kotlin极简教程》第1章 Kotlin简介