编程演变
一、刀工火种
故事是从这里开始的,有一个村子有十来户人家,背靠着一个木场(数据库),而这个木场的主人是一个叫做“木头”的家伙。
十来户人家平时的需求都非常少,只需要一些枯枝或落叶做柴火。这时候没有分层的概念,也没有实体(PO)的概念。你需要什么就直接跑到木场去拿(在需要的地方访问数据库,取出需要的东西)。
二、数据服务层(DAL)与实体对象(PO)
后来经济发展了,各地大兴土木。搞建设需要大量的木材,木头灵机一动,办起了DAL木材店,卖起了各种各样的木材(PO),有乔木啦、灌木啦……
有了这个木材店后,于是人们要木材都不往木场里跑了,在木材店里就要找到自己想要的木材。
木头的木材店生意火爆,他也富了起来,现在开得起宝马了,进得了星级酒店了。
三、业务逻辑层(BLL)与业务对象(BO)
有一天他来到了自己的木材店,有个家伙急急忙忙地闯进来,二话不说就问:“你这里有家私卖(桌子、椅子(BO)……)吗,我要两百套,急啊!客户那边催着要。”
木头在心里头BS了一阵:“这家伙眼珠子不会是掉了吧,找来木材店买家私”。
木头没声好气地应道“没有,没有,我这里是木材店,只管卖木材不卖家私”。
木头回去后,整晚翻来覆去晚不着觉,“家私”一直在他脑海里打转。
不久他便请了一些木匠回来,办起了一家BLL家私店,做起了家私业务。
果然,家私供不应求,大赚了一回,他笑得三日也没合上嘴来,结果造成了肌肉拉伤。
四、外观层(Façade)与表现层对象(VO)
后来生意越做越大,各处都有他的分店。
城市的发展,租金也渐渐地贵了,后来他发现人们一开始并不会去了解产品的所有特性,在人们感兴趣之前。空间制约着发展,成本以日俱增,顾客满意度也在下降。
问题困扰着他,困扰得他吃不下饭,于是他闭关三月。
当一个蓬头散发的男子出现在我们面前的时候,不仔细看还不知道,还以为是乞丐。
他是木头,他出关了!
他兴奋地在路上狂奔,跑着喊着:“我找到解决方法了,我找到解决方法了……”。
他决定做产品的模型,开起了Façade模型加工厂(外观层),加工模型并打包成包裹(VO)发到各分店中去。于是商店展览的柜台上便摆放各色各样的家私模型。
五、工厂模式与IOC
他的木场是个小木场,已无法再支持庞大起来的业务了,于是他便去找更大的木材供应商。
他希望供应商能给符合他品质规格的木材,便制定了各种规约(接口)。
他找到了一个供应商,并建立了业务关系。
但后来,那个供应商要求大幅度提价。
这事使得他急得团团转,他急忙找他的在这行吃得开的好友来商讨对策。他好友听说了后,拍了拍胸膛:“你放心,这事都交给我了”。
他朋友也借此机会开了间Factory工厂和木材供应商打交道,按照木头制定的规格(接口)找来性价比较好的供应商。
这下木头终于又可以省了这份心了。
题外话:
Factory工厂运营良好,他朋友这年头赚了不少,手头上了足够的资金,于是决定升级服务,升级为无线版,全面升级为IOC(依赖注入)服务。
之前的情况是木头要木材的时候,总要跑到工厂里面来找供应商。
现在,木头只要一个电话过去,工厂就会指派供应商过来。
这下一子省心又省事,木头拉着他朋友的手一个劲的道谢,半天也没放下过,结果他朋友的手肿得像个红苹果。
六、数据传输对象(DTO)与契约
随着改革开放,木头也开始在海外有了些的业务。
随着业务的增多,中间的运输成本急剧增长,于是木头打算在海外寻找代理商。
这边不再出口成品家私,而是给定规格和制作方式(DTO与契约),代理商再按规格生产出成品家私。
木头一路顺风顺水,一步一步坚实地朝着他家私皇朝的美梦进发。
题外话:
写好一篇博文确实不是件容易的事,不过能分享自己的一些积累和见解还是蛮开心的,因水平有限,期望不会误人子弟就好。
这是第一次在博客园发表文章,欢迎拍砖,如有不正确的地方请及时指正。