【设计模式】一个代码抽离功能居然用上3种设计模式,飞机太大拉不动

【设计模式】一个代码抽离功能居然用上3种设计模式,飞机太大拉不动

逗比经理又来找Egan帮忙了

 

1.png

 

2.png

 

3.png

 

4.png

Egan接下这个活后看着自己日渐稀少的头发

 

70d688367a131d0008b3a3292dd92cb2.png
5.png

接近一百个Dao接口类,这活是人干的么,这是熬夜搬砖也搬不完。

 

6.png

 

bef4400cbc05de35bf684369d9db10ed.gif

这怎么搬,得有起重机啊,难道要我自己造?

 

7.png
bef4400cbc05de35bf684369d9db10ed.gif

Egan突然灵光一闪:那我就自己造一个起重机

8.png

 

7271c5355849581ab0cc4a422170bbb4.png

先写一个脚本把Dao接口拷贝至基础服务模块里面,机智的Egan想到直接用DOS命令去迁移。

首先需要创建目标目录(mkdir命令),然后在执行copy命令,大概就是这样的

 

9.png

 

da0ee77761bb7faddda2580e5b9834c3.png

想了想这样一个一个执行过去也慢,写程序吧。

Egan构思了一下主要几个部分组成:

  1. 拷贝Dao接口、Dao.xml 至对应的基础服务模块

  2. 拷贝实体类(dto,entyty等等)至对应的数据接口服务模块

  3. 解析Dao接口去除内部杂质得到DataServiceIntf接口并保存至数据接口服务模块

  4. 解析Dao接口去除内部杂质解;解析方法得到参数并将抽象方法变成具体的方法,内部调用Dao对应的方法。保存至基础服务模块类名XXXDataService

差不多就这样了,归类之后变成三类:

  1. 不需要解析直接拷贝文件

  2. 需要解析并处理

  3. 不需要处理的文件(用于匹配以上4个组成部分)

就这样抽象出一个接口类,三个抽象方法

 

f3ad9200a444b787a52825d7289193a9.png
10.png

接着Dao接口类、Dao.xml、实体为直接拷贝的方式,那么这里他们的区别就是目标文件的路径不一样,那么可以编写一个中庸的抽象类把目标文件路径抽象出来。

 

11.png
bef4400cbc05de35bf684369d9db10ed.gif

接口与抽象类编写完差不多然后把所有的类先创建号,类图差不多就是这样子的

 

12.png
bef4400cbc05de35bf684369d9db10ed.gif

编写Dao文件处理器实现类

 

13.png
b214fd19867ad4e94d5db9e281c8b5c5.png

编写实体文件处理器实现类

 

14.png
bef4400cbc05de35bf684369d9db10ed.gif

完美,拷贝方式就这样写完了。

 

8f3bee0dca960401693944813c5f5110.png

 

bef4400cbc05de35bf684369d9db10ed.gif
15.png

 

3e05762d1d9d2602b922c71f299d86d6.png

 

15.5.png

 

16.png

赞,Dao转DataServiceIntf也编写完成

Egan继续编写剩余的类

 

640.gif
8e6d1cc6e43e3b27f84b8e037e863cb0.png

编写完成。

最后只剩启动类,需要对文件遍历处理

滴答滴答

 

640.gif

 

bef4400cbc05de35bf684369d9db10ed.gif

编写终于编写完成啦

 

17.png
bef4400cbc05de35bf684369d9db10ed.gif

 

09e177d93182ef6d9363616cd159070b.png

 

18.png

启动试试。全部成功处理完成。 

不到一天就完成任务了,哈哈哈,自夸一下,庆祝下,今晚加餐

 

19.png
a39728de7edab09a6154ef999d5c17b9.png

嘻嘻,今天就不跟逗比经理说完成了,划水一下,明天再跟他说完成了,让他奖励一波。

20.png

 

182b412ad3db5fb4fdd0f7c9c4369f7d.png

滴答滴答

 

640.gif

第二天

 

21.png

 

22.png

Egan超开心开心,暗喜道:有加餐的活就应该多来一些

你们觉得Egan编写这套组件运用了哪几种设计模式?可在下方留言哦。

往期热门文章:

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值