你真的了解分层架构吗?——写给被petshop

你真的了解分层架构吗?——写给被petshop

ID:32813717

大小:596.00 KB

页数:32页

时间:2019-02-16

你真的了解分层架构吗?——写给被petshop_第1页
你真的了解分层架构吗?——写给被petshop_第2页
你真的了解分层架构吗?——写给被petshop_第3页
你真的了解分层架构吗?——写给被petshop_第4页
你真的了解分层架构吗?——写给被petshop_第5页
资源描述:

《你真的了解分层架构吗?——写给被petshop》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们2009-06-0123:02byEricZhang(T2噬菌体),10909visits,网摘,收藏,编辑一叶障目.NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题。经常看到许多朋友对其进行分析、探讨、辩论甚至是抨击。笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构的理解上存在两个比较大的偏颇:1.没有从本质角度去理解分层的内涵,而只是了解其表象。2.对分层架构的理解过于狭隘,只是少数概念,而又不够深入。许多朋友言“分层”则必称“DAL”、“BLL”、“表示层”等概念,

2、殊不知“DAL”的内部还有“DataSource架构模式”、“Object-RelationalBehavioral模式”、“Object-RelationalStructural模式”等方面,而其中每个方面下下又有诸多具体模式,如“DataSource架构模式”又有“TableDataGateway”、“RowDataGateway”、“AcitiveRecord”等等。再说“BLL”,大家都知道“BLL”是“业务逻辑层”,可是什么是“业务逻辑”?“BLL”又可以构建为“TransactionScript”、“DomainModel”、“TableModule”三种模

3、式,各是什么意思?另外,分层也不仅只有“数据访问层”+“业务逻辑层”+“表示层”这一种分法,诸如“服务层”、“持久化层”、“应用控制层”的概念朋友们是否真的熟悉呢。造成这种现象,我想很大一部分原因是因为大多数.NET平台的开发者(包括我在内)理解分层架构是从Microsoft的PetShop开始的。因为PetShop是官方的Demo,所以被众多.NET开发者奉为圣经,甚至成了.NET平台上分层架构的标准方案。我就曾看到许多朋友在我的博客中留下“分层架构还是PetShop最经典”、“想学分层还是看PetShop吧”、“你这是跟PetShop学得吧”这样的留言。朋友们太崇敬

4、PetShop了,却忽略了一个事实:它仅仅是一个Demo。退一步说,即使它是一个实际应用的项目,这样通过一个具体项目去定义一个抽象概念的方式也是不科学的。32/32举个例子,一个人不知道“牛”是什么东西,于是请教一位奶牛场管理员,管理员迁出一头奶牛,告诉他:“这就是牛”。从此以后,如果有人问他“牛”是什么,他就会告诉别人“牛”是一种体型庞大,行动笨拙,性格温顺,身上有黑白斑块图案,还有一个好大的咪咪,可以挤奶供人喝。有一天,他听说西班牙有斗牛这项运动,他大惊道:“这怎么可以!牛那么温顺,怎么能用来斗呢!而且牛是用来挤奶喝的啊!”故事中这个人犯了一个什么错误呢?他把“具体

5、的一头奶牛”和“牛”这个抽象概念给划等号了。他认为牛就是“体型庞大,行动笨拙,性格温顺,身上有黑白斑块图案,还有一个好大的咪咪,可以挤奶供人喝”。殊不知这世界上还有黄牛、水牛、牦牛、斗牛、肉牛等各种牛。他没能做到“透过想象看本质”从而形成抽象概念,而犯了“一叶障目”的错误。其实,许多朋友之所以对分层架构理解片面或偏颇,是因为与故事中这个人犯了相同的错误。当初,我们不知道何为“分层架构”,于是微软给了我们一个PetShop,说:“看!这就是.NET平台下分层架构的产品。”于是我们“恍然大悟”:“噢!这就是分层架构啊!”。就这样,我们把“分层架构”这样一个内涵和外延都极大的

6、抽象概念和一个具体的Demo划了等号,从而也变成了故事中那个人——我们言分层架构必称DAL、BLL,我们做项目必然依照PetShop方式架构……我们确实被PetShop“毒害”了。但这不是微软的错,更不是PetShop的错,就像在故事中,我们不能把罪责归咎于奶牛场管理员或那头奶牛。错在我们自己!当微软给我们PetShop时,我们应该在脑中清醒认识到:这是一个分层架构的Demo。而不是理解成了“这就是分层架构”。我们应该钻研、思考,从而抓住分层架构的本质,可是我们没有。与其说我们是被PetShop“毒害”了,倒不如说我们是被自己、被自己那种不良的学习习惯毒害了。我们仅看表

7、象,还是只看了一个表象,然后就冒然对分层架构盖棺定论。而没能透过想象看本质。所以,我们同样犯了“一叶障目”的错误。32/32以上的错误,笔者也曾经犯过!所以,在下文中,我想和朋友们一起分享一下我在反省自己的过程中,悟出的一些心得体会,希望能借此帮助更多朋友尽快走出“一叶障目”。洞悉分层的本质我们可以讨论如何分层,可以讨论分层的利弊,可以讨论分层有没有价值……但在这一切一切讨论之前,我们要先弄清楚一件事:分层的本质是什么?或者说:分层是怎么来的?如果这个问题不明晰,那么我们其他的讨论犹如“浮沙之上筑高台”,再精辟的言辞,如果没有一个牢固的基

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。