Spring 框架是怎么出生的(二):重构提炼出框架

栏目: IT技术 · 发布时间: 6年前

 代码重复就是机会。

上一篇结束时, 我们给出这样的提问:

    如果把创建对象和管理依赖的代码从Main.java中挪出到别的类中, 情况会怎样? 会不会好一些?

版本2

这个提问的解答会帮助咱意识到, 这个问题是所有项目中的共性。如果能想一招儿, 降低模块之间耦合的话,我们实际上是搞了一个框架,这个框架可以帮助节省 程序员 的精力,也最终让模块的实现代码清爽易读。这里,我们自建的这个框架自然称之为“Apurav Framework”。

Apurav Framework的核心职责是读取对象定义文件,其中也定义了每一个对象的依赖。文件定义如下:

Spring 框架是怎么出生的(二):重构提炼出框架

基于上面定义文件,解析并创建对象的代码如下:

Spring 框架是怎么出生的(二):重构提炼出框架

上面代码的关键要点如下:

1. 读取配置文件。

2. 针对配置中以object开头的项,使用Class.forName加载到对应的Class后,创建相应的对象后, 放到HashMap的寄存器中。

3. 针对配置中非object开头的配置项,先从对象寄存器中找到对应的对象,再利用反射设置依赖。

经过上面的处理后,原有代码中创建对象及设置依赖的部分抽取提炼到ApuravFramework.java文件,我们Main.java文件中也就只剩下调用业务逻辑的单一功能, 清爽了很多。

Spring 框架是怎么出生的(二):重构提炼出框架

上面代码中, 通过配置, ApuravFramework本质上看,将依赖的控制从Main.java文件中,迁移到自己身上。这样,这个小框架就是经常听到的IoC容器和DI框架。

嗯,对了, 这就是Spring框架里最核心的功能。

版本3:

最后的版本, 也就是直接使用Spring框架了。其内部, 也像ApuravFramework.java一样,生成对象后,再设置依赖。跟上面例子不同的是,这里是从XML配置文件中读取的, 而不是普通的配置文件。

Spring 框架是怎么出生的(二):重构提炼出框架

Spring 框架是怎么出生的(二):重构提炼出框架

至此, 我们从丑陋重复的代码开始,识别出除业务核心逻辑之外的支撑功能,并抽离出来,形成原始的IoC框架,最终过渡到标准的Spring框架使用。通过这个演化,从重构的角度,体会到了Spring框架是怎么出生的。当然,这样的重构过程, 不单单是Spring框架独有的, 希望这个演化带来的启发也能帮到咱们业务系统的重构和设计中,最终提升业务系统质量,并帮助业务创新。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创业无畏

创业无畏

彼得· 戴曼迪斯、史蒂芬· 科特勒 / 贾拥民 / 浙江人民出版社 / 2015-8 / 69.90元

 您是否有最大胆的商业梦想?您是否想把一个好主意快速转化为一家市值几百亿甚至几千亿元的公司?《创业无畏》不仅分享了成功创业家的真知灼见,更为我们绘制了一幅激情创业的行动路线图!  创业缺人手怎么办?如何解决钱的问题?把握指数型大众工具,互联网就是你车间,你的仓库。拥有好的创意,自然有人把钱“白白地送给你用”。当你大海捞针的时候,激励性大奖赛会让针自己跑到你的眼前来!  掌握指数级......一起来看看 《创业无畏》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器