我对分层的理解(一)

对于数据分层的概念想必大家都看的很多了.在这里我就不再罗嗦..不说理论.只说实际.以下内容大部分是以ASP.NET角度出发.

首先:采用分层前,要考虑自己的需求.不要为了跟潮流,看别人分层我也要分层.这样的思想只会使自己更麻烦.我的建议,对于小项目,如果后期需要周期性的扩展,或者需求会经常改变.可以考虑分层实现..如果只是一个中小企业的网站.需求经常不会改变的.而且大部分的功能都是以前做过的,完全可以直接ASPX+ASPX.CS..

其次:对于分层没有一个标准.也没有一个硬性的规则.分层的主要是目的是让项目能够灵活,便于管理和扩展.分层的后代码应该是很少见到甚至见不到重复出现的代码片段.我就曾见过有的分层,每个层中都会有重复的功能或者类似的功能代码..而这些重复的功能模块只是因为传递的参数不同或者返回的参数不同而重新写了类似的代码..这样的代码完全可以分割为更小的模块.重新封套再组合..比如,饮料,茶水,他们虽然是不同的产品,但是他们确有同样的物质成分--水..
饮料可以分为:水和其他物质,
茶水可以分为:水和茶叶
这样拆分后就看出来他们共同的物质是:水!面向对象编程的思想也是这样..要做到最大的灵活度.就需要从功能上分割.

最后:对于ASP.NET来说,决定性能的关键就是网络传输的大小,传输的Data越大则性能消耗就越大.而优化性能的关键是对数据库的优化.我的建议是:尽可能的将你的SQL语句缓存,一起执行.避免下列行为的发生:

None.gif SqlCommand com  =   new  SqlCommand( " select * from table1 " ,conn);
None.gifdr 
=  com.executeReader();
None.gifcom.CommandText 
=   " select * from table2 " ;
None.gifdr 
=  com.executeReader();
None.gifcom.CommandText 
=   " select * from table3 " ;
None.gifdr 
=  com.executeReader();
None.gif

这样频繁的读取数据是很消耗资源的..其实完全可以写成存储过程,然后一次执行赋予SqlDataReader或者DataSet..如果SqlDataReader自身有多张表的话,SqlDataReader的NextResult()方法可以操作多表.
对于数据库层中的传输,大家用DataSet比较多.如果需要通过DataSet往返数据层与业务层..可以考虑使用DataSet的GetChanges()函数.他返回DataSet中只改变的记录..然后将改变后的DataSet用Merge()添加到业务层中..

以上内容只是为了说明:不要人家说好就是好,人家能用的我也能用,关键是要适合自己,能适合自己的需求才是最重要!

今天暂时写到这里,过几天找时间再继续写..今天可是冒着生命危险写的哦..

链接:我对分层的理解(二)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分层解耦思想是一种软件架构设计的原则,它将复杂的系统拆分成多个层,每个层都具有特定的功能和职责,并且层与层之间的依赖关系尽可能降低,从而实现系统的高内聚低耦合,提高系统的可维护性、可扩展性和可重用性。 具体而言,分层解耦思想要求在软件设计过程中,将系统拆分成多个层次,每个层次都有明确的职责和功能,并且层与层之间的接口尽可能简单和稳定,避免层次之间的直接依赖。这样,当需要修改或扩展系统时,只需要修改或扩展特定的层次,而不会影响到其他层次,从而提高了系统的灵活性和可维护性。 分层解耦思想的优点在于: 1. 提高系统的可维护性:由于每个层次都有明确的职责和功能,因此在修改或扩展系统时,只需要修改或扩展特定的层次,而不会影响到其他层次,降低了修改或扩展的难度和风险。 2. 提高系统的可扩展性:由于层与层之间的接口简单和稳定,因此在需要扩展系统功能时,可以通过新增或替换某个层次来实现,而不会影响到其他层次,降低了扩展的难度和风险。 3. 提高系统的可重用性:由于每个层次都有明确的职责和功能,因此可以将某个层次的功能封装成独立的组件,供其他系统复用,提高了系统的可重用性。 总之,分层解耦思想是一种重要的软件架构设计原则,它可以提高软件系统的可维护性、可扩展性和可重用性,对于构建高质量的软件系统具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值