综合

asp三层架构实例

时间:2010-12-5 17:23:32  作者:娱乐   来源:综合  查看:  评论:0
内容摘要:ASP三层架构这事儿,我见过太多人把它理解成"代码分三个文件夹"了。上周帮一个朋友调试他刚接手的电商项目,打开项目一看,UI层里直接写了SQL语句,业务逻辑层里居然还弹出MessageBox——这哪是

ASP三层架构这事儿,架构我见过太多人把它理解成"代码分三个文件夹"了。实例上周帮一个朋友调试他刚接手的架构电商项目,打开项目一看,实例UI层里直接写了SQL语句,架构业务逻辑层里居然还弹出MessageBox——这哪是实例三层架构,分明是架构三层浆糊。

真正的实例三层架构,核心就一句话:UI层只负责展示和收集数据,架构BLL层只处理业务规则,实例DAL层只做数据库的架构增删改查。各层之间通过实体类传递数据,实例像接力赛一样,架构每一棒都只跑自己的实例距离。拿那个电商项目举例,架构用户点击"提交订单"按钮,UI层做的仅仅是把这个按钮事件里的订单实体传给BLL层,然后等着返回结果。

BLL层拿到订单实体后,要检查库存够不够、用户余额足不足、优惠券是否过期——这些规则全写在这里。我见过不少人把库存判断直接写进DAL层的存储过程里,省事儿是真省事儿,可一旦业务规则变了,你得去改数据库,那可比改代码麻烦十倍。朋友那个项目就是这么垮的:运营想搞个"满三件打八折"的活动,结果优惠逻辑埋在三个不同的存储过程里,改了一个,另外两个忘了改,线上直接出了bug。

DAL层就更纯粹了,它只认实体和SQL。你给它一个订单实体,它就执行INSERT;给它一个订单ID,它就返回一个订单实体。它不关心这个订单是正常下单还是刷单,也不关心价格算得对不对——那是BLL层的事儿。这种分工带来的好处特别实在:假设你哪天要从SQL Server换成MySQL,只要DAL层的接口不变,上面两层一行代码都不用动。

但三层架构也有个容易踩的坑——过度设计。我见过一个小博客系统,总共三张表,愣是分出了七个项目文件,每个层都建了接口和实现类。结果改一个字段名得动四个地方,开发效率比不分层还慢。三层架构解决的是"复杂业务的可维护性"问题,不是"代码文件怎么摆"的问题。

说到底,三层架构的价值在于让代码的职责边界清晰。UI层的人不懂业务规则也能开发页面,BLL层的人不用管SQL怎么写,DAL层的人不用关心按钮点击事件。这才是它存在的意义。至于那些说"三层架构性能差"的,多半是把数据访问直接写在UI层里做对比——那当然快,可你维护一个试试?

最近更新
热门排行
copyright © 2026 powered by 烟消火灭网   sitemap