您的位置:首页 > 编程语言 > Java开发

Java23中设计模式2——创建型模式之原型模式

2020-01-13 01:41 148 查看

Java中除去有设计原则之外,还有23中设计模式。(设计模式我们主要来将思想和精髓的地方,除去Java还有其他的语言也可以适用)

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

这些模式中,可以说是将语言的使用提现的淋漓尽致,我们今天要学习第一种设计模式,原型模式!

原型模式:

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

来源:百度百科

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

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

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

原型模式的实现:

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

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

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

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

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

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

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

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

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

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

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

深克隆与浅克隆:

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

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

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

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

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

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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
他 他 = new 他() 发布了33 篇原创文章 · 获赞 31 · 访问量 1256 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: