【设计模式】一个代码抽离功能居然用上3种设计模式,飞机太大拉不动
【设计模式】一个代码抽离功能居然用上3种设计模式,飞机太大拉不动
逗比经理又来找Egan帮忙了
Egan接下这个活后看着自己日渐稀少的头发
接近一百个Dao接口类,这活是人干的么,这是熬夜搬砖也搬不完。
这怎么搬,得有起重机啊,难道要我自己造?
Egan突然灵光一闪:那我就自己造一个起重机
先写一个脚本把Dao接口拷贝至基础服务模块里面,机智的Egan想到直接用DOS命令去迁移。
首先需要创建目标目录(mkdir命令),然后在执行copy命令,大概就是这样的
想了想这样一个一个执行过去也慢,写程序吧。
Egan构思了一下主要几个部分组成:
-
拷贝Dao接口、Dao.xml 至对应的基础服务模块
-
拷贝实体类(dto,entyty等等)至对应的数据接口服务模块
-
解析Dao接口去除内部杂质得到DataServiceIntf接口并保存至数据接口服务模块
-
解析Dao接口去除内部杂质解;解析方法得到参数并将抽象方法变成具体的方法,内部调用Dao对应的方法。保存至基础服务模块类名XXXDataService
差不多就这样了,归类之后变成三类:
-
不需要解析直接拷贝文件
-
需要解析并处理
-
不需要处理的文件(用于匹配以上4个组成部分)
就这样抽象出一个接口类,三个抽象方法
接着Dao接口类、Dao.xml、实体为直接拷贝的方式,那么这里他们的区别就是目标文件的路径不一样,那么可以编写一个中庸的抽象类把目标文件路径抽象出来。
接口与抽象类编写完差不多然后把所有的类先创建号,类图差不多就是这样子的
编写Dao文件处理器实现类
编写实体文件处理器实现类
完美,拷贝方式就这样写完了。
赞,Dao转DataServiceIntf也编写完成
Egan继续编写剩余的类
编写完成。
最后只剩启动类,需要对文件遍历处理
滴答滴答
编写终于编写完成啦
启动试试。全部成功处理完成。
不到一天就完成任务了,哈哈哈,自夸一下,庆祝下,今晚加餐
嘻嘻,今天就不跟逗比经理说完成了,划水一下,明天再跟他说完成了,让他奖励一波。
滴答滴答
第二天
Egan超开心开心,暗喜道:有加餐的活就应该多来一些
你们觉得Egan编写这套组件运用了哪几种设计模式?可在下方留言哦。
往期热门文章:
关注我哦
小编不易,如果你喜欢这篇文章,关注公众号,点点赞,点点分享,感谢

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
分布式存储开发:Curve中的内存管理
前言 Curve 实践过程中遇到过几次内存相关的问题,与操作系统内存管理相关的是以下两次: chunkserver上内存无法释放 mds出现内存缓慢增长的现象 内存问题在开发阶段大多很难发现,测试阶段大压力稳定性测试(持续跑7*24小时以上)、异常测试往往比较容易出问题,当然这还需要我们在测试阶段足够仔细,除了关注io相关指标外,还要关注服务端内存/CPU/网卡等资源使用情况以及采集的metric是否符合预期。比如上述问题mds 内存缓慢增长,如果只关注io是否正常,在测试阶段是无法发现的。内存问题出现后定位也不容易,尤其在软件规模较大的情况下。 本文主要是从开发者的角度来谈 Curve 中的内存管理,不会过度强调内存管理理论,目的是把我们在软件开发过程中对 Linux 内存管理的认知、内存问题分析的一些方法分享给大家。本文会从以下几个方面展开: 内存布局。结合 Curve 软件说明内存布局。 内存分配策略。说明内存分配器的必要性,以及需要解决的问题和具有的特点,然后通过举例说明其中一个内存分配器的内存管理方法。 Curve 的内存管理。介绍当前 Curve 软件内存分配器的选择及原因...
- 下一篇
私有云如何运行深度学习?看ZStack+Docker支撑GPU业务实践
前景 ZStack所聚焦的IaaS,作为云计算里的底座基石,能够更好的实现物理资源隔离,以及服务器等硬件资源的统一管理,为上层大数据、深度学习Tensorflow等业务提供了稳定可靠的基础环境。 近年来,云计算发展探索出了有别于传统虚拟化、更贴近于业务的PaaS型服务,该类型依赖于docker实现,如K8S等典型的容器云,可以直接从镜像商店下载封装好业务软件的镜像,更加快捷地实现业务部署。 此外,GPU场景也是客户业务的典型场景,相比于CPU的运算特点,在数据分析、深度学习有着明显的优势。 ZStack是如何与容器结合,以IaaS+PaaS的组合拳,为上层业务提供支撑的呢?本篇文章带大家了解一下,如何在ZStack上部署centos7.6虚拟机,在虚拟机里部署docker,以及如何使用nvidia-docker实现在容器里调用GPU的业务场景。 环境 虚机系统:Centos 7.6 虚机内核:Linux 172-18-47-133 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- 2048小游戏-低调大师作品
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16