表示层
业务层
逻辑层
我觉得主要是DAL的效率,这个层应该用COM实现,但是这样的话,如果是DNA的防火墙又成了问题。
还有,分层后的资源释放问题。
BLL层的只放逻辑规则就可以了,用它来连接UI和DAL
业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
(IDAL)它体现了“抽象”的精神,或者说是“面向接口编程”的最佳体现。抽象的接口模块IDAL
(Model)实体和数据库表映射类
(Web)web网站
项目
就按你的要求写把
需求:
1。需要有一个对象负责接收key
2.改类需要查询数据
3.该类需要返回数据
约束:该类在实际使用中需要查询商品表
C# codepublic class seach
{
private string _key
public string key
{
set(_key=value;)
}
private object _Result;
public object result //返回值,这里使用object是为了留出空白,保留该类的变化
{
get
{
return _Result;
}
}
public virtual void getSearch() //查询数据,这里使用virtual同样是为了留出空白,保留该类的变化
{
}
}
你可以看到这是一个纯粹的对象,没有做任何数据库要做的事情,也没做界面要做的事情,他完全是对需求的一个代码翻译
这个是实际上是MOdel的东西
2.有了model层,我们在做业务逻辑,业务逻辑我们要完成对这个对象的约束
C# codepublic goodsSearch:seach
{
public Dataview seachRes //返回结果
{
get(return (DataView)_Result;) //这里我返回了DataView,实际上你可以返回别的东西,只要你能转换的过去
}
public goodssearch(string key)
{
_key=key;
}
public override void getSearch()
{
_Result=DAl.xxx(_key)//去数据层取数据,当然数据层怎么写是数据层的事情,这里就不要关心了
}
}
3.数据层,这个我就不写,基本就是把你自己写的访问数据库的东西在写一遍,你明白就可以了
现在你可以看的比较清楚了把,实际上三层的模型完全就是在将就对象设计,而在对象设计初期,我根本就没管数据库和界面的事情
实际上的区别在于考虑问题的方式,就PetShop而言,从界面层考虑,他的业务逻辑层没问题,完全合用,数据层也没问题
问题在于:PetShop根本就不是开始从界面层考虑问题,他一开始就是从model层开始的,所以最终表现成了现在的架构。
所以,你该把你的眼睛放到model层,由model层看其他层的东西
这个东西,我可以毫不客气的说(我不怕得罪人)建议看petshop的,而没点出为什么要看PetShop的人,实际并不明白为啥要分层。对于这些人,我说是马后炮,中国队赢了,你们说中国队战无不胜,中国队输了,你们说中国队就是一群“猪”
将DataLayer放在App_Code文件夹下他还是业务逻辑层,不管你把它放到哪,都是业务逻辑层,软件分层在于思想和归类,而不在于文件摆放的位置。
数据层:一般只包括数据库那块,而且也不包含大量的
存储过程,按照数据层的概念,就是提供简单的数据存储维护任务的。
逻辑层:一般就是指我们写的程序的逻辑处理部分不包括界面。这个其实很难区分,例如数据访问层根数据层容易混淆,其实我明确不了它算什么,还有网上流行的数据持久层也就是被称为ORM的大型框架,按照理论来讲它大部分功能应该是属于数据层的应该划为数据层,但是实际架构中又与数据库没密切联系,所以有人把它分离出来叫数据持久层,我觉得在软件开发中没必要非得用这么大规模的框架做性能缓冲,那还不如用多个数据库软件做,小型的数据缓存,可以通过其它缓存方式来解决。但事实表明中国人都是很懒的而且很想节省开支,所以很泛滥的在用这些东西,从而也导致了中国软件性能的各种问题,“慢”是一个最明显的问题。数据方面的逻辑处理的方法就属于这层,如果这样说的话,复杂的逻辑存储过程其实也是属于这层的,用一两个倒没什么,最让我难以理解的是,大部分人大部分公司都在以各种程度的滥用数据库的存储过程,一个很小的处理都用存储过程写,这到底能给你带来多大的方便呢?如果改动你也不可能只该存储过程还是要改程序,而且这样做无形的就给数据库增加了一层压力,这也是为什么大多数软件程序还为垮,数据库先垮掉的一个原因之一。
表示层:其实就是用户界面了,这些基本的控件操作阿,什么的都是。
以上仅为个人经验所得,仅供参考,我也希望中国软件界多一些能自我开发的人才,而不是只能用一些成熟的框架做二次开发的人才。拿来的东西是未必都很好用,要充分了解它的特性,有选择的使用。
下一篇: