文档介绍:三层架构的理解
了解c#中的三层架构(DAL,BLL,UI —提三层架构,大家都知道是表现层(UI,业
务逻辑层 (BLL 和数据访问层 (DAL, 而且每层如何细分也都有很多的方法。但具体 代码怎么写 ,到底那些文件算在哪一层 ,却是
return ( != null;
}
那么DAL就无需实现lsExist(方法了,BLL中也就有了逻辑处理的代码。
3、
实体类,这个东西 ,大家可能觉得不好分层。包括我以前在内 ,是这样理解
的:Ul? Model?dBLL?dModel?QAL,如此贝U认为 Model在各层之间起到了一个数据 传输的桥梁作用。不过在这里 ,我们不是把事情想简单 ,而是想复杂了。
Model 是什么 ?它什么也不是 !它在三层架构中是可有可无的。它其实就是面向 对象编程中最基本的东西
:类。一个桌子是一个类 ,一条新闻也是一个类 ,int、 string、doublie 等也是类 ,它仅仅是一个类而已。
这样,Model在三层架构中的位置,和int,string等变量的地位就一样了,没有其它 的目的 ,仅用于数据的存储而已 ,只不过它存储的是复杂的数据。所以如果你的项目 中对象都非常简单 ,那么不用 Model 而直接传递多个参数也能做成三层架构。
那为什么还要有 Model 呢,它的好处是什么呢。下面是思考一个问题时想到的 插在这里 : Model 在各层参数传递时到底能起到做大的作用 ?
在各层间传递参数时 ,可以这样:
AddUser(userld,userName,userPassword, …,
也可以这样 :
AddUser(userlnfo
这两种方法那个好呢。一目了然 ,肯定是第二种要好很多。
什么时候用普通变量类型(int,string,guid,double在
各层之间传递参数 ,什么使用 Model 传递?下面几个方法 : SelectUser(int Userld
SelectUserByName(string username
SelectUserByName(string username,string password
SelectUserByEmail(string email
SelectUserByEmail(string email,string password
可以概括为 :
SelectUser(userId
SelectUser(user
这里用user这个Model对象囊括了 username,password,ema这三个参数的四种 组合模式。Userid其实也可以合并到user中,但项目中其它BLL都实现了带有id参 数的接口 ,所以这里也保留这一项。
传入了 userinfo,那如何处理呢,这个就需要按照先后的顺序了 ,有具体代码决 定。
这里按这个顺序处理
首先看是否同时具有username和password然后看是否同时具有email和 password然后看是否有username然后看是否有email。依次处理。
这样,如果以后增加一个新内容,会员卡(number则无需更改接口,只要在DAL的 代码中增加对number的支持就行,然后前台增加会员卡一项内容的表现与