tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

关于三层架构以及分层的理解

5846人阅读 2020/3/8 12:53 总访问:1070982 评论:0 收藏:0 手机
分类: 随笔

首先,对软件分层,是有必要的,不管是从可维护性角度,还是从解耦的角度。

其次,被滥用,这个是的,很多人,并非真正理解分层的含义,就在照葫芦画瓢,照虎画猫。

分层,必须真正的对项目有利,不论是提高开发效率,还是可测试性,可维护性还是降低开发难度。这是架构师应该平衡各项之后做出的设计。清一色的所谓三层,确实有滥用之嫌。

然后,回答中,大量的人,把题主所谓的传统意义的三层和MVC混在了一起。这些答主,你们也属于滥用层次模型的一类人。相信你们也都习惯把业务逻辑放到controller里,甚至你们会觉得MVC的M和ORM里的M是同一个东西,然后还觉得MVC真牛逼,比三层架构好多了~而且,传统意义上的三层指的是UI(展示层)+BLL(业务逻辑层)+DAL(数据访问层);MVC属于UI层,是UI层的具体实现,它和三层架构没有替代关系。MVC在整个Web应用架构中,地位和WebForm是一致的,它对WebForm是替代关系。

针对软件的设计和架构,分层是需要的,对于略上规模的项目,就可以说是必要的。很多时候,甚至根据需要,会有更多的层次。当然,可以把更多的层次理解为三层架构中的细分,就像UI层的实现,可以细分为MVC/MVVM等层次。BLL层也许会根据业务需要,从业务逻辑上细分出来。而DAL也可以做文章,你可以直接调用ADO.NET访问数据库,但也可以用EF作为DAL使用。然而,也许你会发现,从性能考虑,应该加一层缓存。数据写入也先写入内存,然后批量入库,来提高数据访问性能。接着,自然就牵涉到数据一致性,这样一个数据持久层(PDL)又出现了,用以协调数据库和缓存之间的关系。如果项目比较大,用到了分布式存取,那么协调各个机器之间的数据,又可以再加一层了~~

可以看到,具体用几层,怎么用,这是根据实际具体需要决定的,而不是用公式去套。就和学习设计模式一样,这是对经验的总结和应用,而不是万能公式。

https://www.zhihu.com/question/28076940/answer/246597746

欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价