打印

[.Net] 分层的意义是什么?

分层的意义是什么?

平时做具体的项目,除了结构性的东西以外
业务逻辑的大量代码其实都是不能抽象的
而是根据具体的业务,来决定方法的返回值和参数
如果一个业务改变,也很大程度上都会对这两项进行修改

大部分分层例子都是,逻辑层一个函数,数据层对应一个函数
数据层进行SQL语句和参数的组装,逻辑层基本上就是简单的调用数据层
顶多就是把几个数据层的方法组合

这样来说,如果一个业务改变,进而需要修改返回类型和参数的话
两层的代码都需要改,对于维护不是更方便了,而是更复杂了
如果只有一层,改一个地方就可以了

从这个角度来说,分层的意义是什么?

TOP

也不是所有的程序都需要分层的,

在团队开发中分层比较好分工的,不需要人人都很精通业务,不懂业务的调调别人写好的东西就行了,但是分层在设计的时候要求很高,做设计的人要对业务非常的了解,一旦定下来的东西就很难去修改了


不分层的代码其实很灵活,想怎么改都行,而且你改了对其他的代码基本不会产生影响,能够随时跟上客户的需求,因为更改一个页面,或者某段业务逻辑对其他程序没有影响,但是对程序员的要求就很高了,必须知道很多东西


个人认为分层的好处是让那些刚学会编程的人能很快找到一份工作,虽然工资低一点但那毕竟是有工作了

让经验丰厚的程序员具有更多吹牛的资本,因为增加了很多专业词汇,能把客户吹的迷迷糊糊的最后很开心付账,1层还是3层,或者7层...你想让一个不是很懂程序的客户听了他喜欢那个?

TOP

层(三层)结构还是有很多优点的,小的系统可能是体现不出来,在电信营帐和银行系统的表现就很明显了,主要表现在:1.优化系统结构,便于维护和管理;2.将客户端与数据库隔离起来,客户端无权限直接访问数据库,大大提高了安全性;3.便于业务(事务)级权限管理;4.可扩展性:若要提高系统性能、处理速度,可增加应用服务器,分担一部分应用服务工作即可,而原来的应用服务器几乎可以不动。5.可以减少网络数据流量和提高数据库响应速度;6.可以节省硬件投资和保护现有投资,要知道大型系统应用的硬件投资都是价格不菲的;7.采用中间件的中间层可以均衡负载,提高系统性能。

楼主所说的“大部分分层例子都是,逻辑层一个函数,数据层对应一个函数
数据层进行SQL语句和参数的组装,逻辑层基本上就是简单的调用数据层
顶多就是把几个数据层的方法组合”,我可以不好意思的说一下,楼主做的项目还不够大,呵呵,大型系统中间层都会用到中间件的,目前用的最广泛的是bea的tuxedo交易中间件,你可以找些这方面的资料看一下!

TOP

减少代码偶合度,提高可维护性和代码可重用性等等

TOP

楼上几位是正解,不分层,对于需求的变更,修改代码可能会有更大的麻烦和隐患。
此外,分层也便于团队开发。
最后强调一点,需求一边不可避免要修改代码,所以。。。。。。
www.kooboy.net

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-12-3 08:48 京ICP证060528 号

Designed By 17DST