【设计模式-原型模式】Egan好不容易来的加薪机会

原创
2020/12/08 10:11
阅读数 36

 【设计模式-原型】Egan好不容易来的加薪机会

首先我们带Egan来一起了解下什么是【原型模式】

原型模式创建一个和原型相同或相似的新对象
        在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。

 

由于 Java 提供了对象的 clone() 方法,所以用 Java 实现原型模式很简单。

  1. 抽象原型类:规定了具体原型对象必须实现的接口

  2. 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。

  3. 访问类:使用具体原型类中的 clone() 方法来复制新的对象。

类图也是超级简单

 

 

以下来讲一个简单的例子

用原型模式模拟“孙悟空”复制自己。

分析:孙悟空拔下猴毛轻轻一吹就变出很多孙悟空,这实际上是用到了原型模式。这里的孙悟空类 SunWukong 是具体原型类,而 Java 中的 Cloneable 接口是抽象原型类。

 


大家有没有发现:
    孙悟空类需要有一个有参的构造方法,但是孙悟空分身的时候不需要去传递参数。
是不是就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。

 

Egan开心的学完原型了,觉得挺简单的,但是哪些场景可以用到呢,Egan自己也不知道,就这样不了了之了……

过了很久很久

 

只到某一天

逗比经理又来找Egan,逗比经理找Egan绝没(dui)有(you)好(hong)事(bao)

 


就这样Egan就"咔咔"、“哒哒"开始写代码,

 

 

 

Egan行云流水般优雅的写完了代码。还跟逗比经理炫耀了一波,说自己写的代码超级优雅

逗比经理看Egan的代码中……


 

 

 

 

Egan美滋滋中……

突然逗比经理发来消息

很快Egan就找到数据计算的问题了,文件名字段存储的居然是解压之后的文件名,因为异步导致的,呼呜呜……

Egan想了想,要不创建一个新的FileInst对象把传递过来的数据设置到新的对象里面吧

于是有了下面这段代码
 

第二天逗比经理又发来了消息

好不容易来的加薪机会

Egan沉思中……

突然Egan窃喜

就这样Egan就"咔咔"、“哒哒"开始写代码,

 

 

Egan使用起了早期学习的原型模式

 

然后调用的地方

 

就这样Egan实现了加薪……

END

往期热门文章:

☞【设计模式】飞机太大Egan拉不动

☞【设计模式-原型】Egan好不容易来的加薪机会

☞【设计模式】逗比经理居然找Egan闲聊

☞【设计模式】发誓不再熬夜

☞  服务器突然宕机重启导致docker中redis无法启动

☞  jdbc sql如何高效优雅的解决字典表数据转化

☞  NIO入门介绍--Buffer缓冲区

☞  NIO入门介绍--Channel通道>直接缓冲区

关注我哦

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部