Java23中设计模式2——创建型模式之原型模式
Java中除去有设计原则之外,还有23中设计模式。(设计模式我们主要来将思想和精髓的地方,除去Java还有其他的语言也可以适用)
这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,这些设计模式可以解决一些特定的问题。
这些模式中,可以说是将语言的使用提现的淋漓尽致,我们今天要学习第一种设计模式,原型模式!
原型模式:
先来看一下这个的权威定义
来源:百度百科
从表面上看,创建对象,然后拷贝对象,但是,实际上就是如此。
把一个已经创建的实例作为最初的原型,然后复制这个对象,或得到另外一个和原型对象相同或者相似的新对象。用这样的方式去创建对象可以说非常的快、高效,而且不需要知道创建对象的细节。
当然,我们使用这样的模式也是有前提条件的,那就是创建那种复杂,或者很麻烦的对象的时候,创建好缓存上,然后用的时候直接使用它的复制。
原型模式的实现:
原型模式的实现,是要求要实现该模式的类实现一个接口,叫Cloneable,会英语的同学可能一下就明白了,就是克隆。
我们简单来用代码操作一下:
1.首先定义一个羊这么个抽象类,然后让这个羊类实现克隆。
羊有一个名字,可以说话。具体说啥让实现类来实现。再往下就是克隆的方法。
然后,我们创建一个喜羊羊和一个美羊羊,两个羊,并且去继承这个Sheep这个类:
接着,重点来了,我们来创建一个测试类,名字叫SheepTest,然后在类里面实例化他们,并将他们存储到一个Map集合当中。
再然后,我们写一个main方法,来做操作。
第一个方法是调用,createSheep(),假装这个方法里面呢是很复杂的一个创建过程。
实例化完成之后,我们再来写一个方法,这个方法是用来创建他们的克隆类。
写好之后,我们来main中进行调用。
相同的,美羊羊也可以调用,这样我们就实现了原型模式的最简单的应用。
深克隆与浅克隆:
上面看完之后,我们再来说说这个根深一步的东西,这个大家要好好去学习。
克隆,实际上就是我们Sheep实现的内个接口,就是克隆接口,但是克隆也区分层次,有深克隆和浅克隆,下面我们来说说深浅克隆。
浅克隆:什么叫浅克隆?浅克隆指的是创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。
实际上是一个新的对象,但是里面的属性还是用的以前的那些个。
深克隆:深克隆就是和浅克隆不一样的是,这个新的对象,里面的非基本类型属性,指向的是一个新的内存地址,并不是用的以前的那些个。
这里呢,我们只是简单的了解,并没有去做实现,有想知道的同学可以去网上搜索一下,我建议暂时可以不去研究,等你学习到了一定程度,再去接触这些内容,你可能会更好、更容易的理解他们。
- 点赞
- 收藏
- 分享
- 文章举报
- JAVA设计模式(05):创建型-原型模式(Prototype)
- JAVA设计模式(05):创建型-原型模式(Prototype)
- Java设计模式之创建型模式--原型模式
- 设计模式(Design Pattern) - 创建型模式(Creational Pattern) - 原型模式(Prototype) - Java实现
- java设计模式(创建型)之原型模式
- Java设计模式——创建型模式——原型模式(Prototype Pattern)
- Java[Android]设计模式创建型设计模式之Builder模式+单例模式+原型模式
- Java与设计模式(十四)创建型--原型模式
- JAVA设计模式(05):创建型-原型模式(Prototype)
- 233_尚学堂_高淇_java300集最全视频教程_【GOF23设计模式】_原型模式_prototype_浅复制_深复制_反序列化实现深复制
- java-设计模式(创建型)-【原型模式】
- 【创建型模式】原型模式(Prototype)之23种java设计模式
- Java常用的设计模式05:常用设计模式之原型模式(创建型模式)
- java设计模式——创建型之原型模式
- JAVA设计模式(5) —<创建型>原型模式(Prototype)
- Java设计模式_(创建型)_原型模式
- java23中设计模式之原型模式
- Java经典设计模式-创建型模式-原型模式(Prototype)
- Android的开发之&java23中设计模式------>原型模式
- 【GOF23设计模式】_原型模式JAVA233-234