1..net, 怎么在BLL层和DAL层中加入IDAL层的,具体些,最好写一些代
BLL:
public class TestBll
{
ITestDal dal = TestFactory.CreateDal();
public string GetData()
{
return dal.GetData();
}
}
IDAL:
public interface ITestDal
{
public string GetData();
}
DAL:
public class TestDal : ITestDal
{
public override string GetData()
{
return "test";
}
}
Factory:
public class TestFactory
{
public static ITestDal CreateDal()
{
return new TestDal();
}
}
关系:BLL要调用DAL方法不是直接生成DAL对象去调用,而是通过中间的factory生成,IDAL是为了保证耦合度。
这只是最简单的一种调用,可以继续优化,比如配置文件+反射+缓存。
架构、设计模式之类的学习需要多实践,只有实践了才能发现一些问题,如性能,代码冗余等。
2.业务逻辑层BLL到底有什么用
1、BLL层全称是 Business Logic Layer
顾名思义,是业务层
2、它是DAL(Data Access Layer,数据访问层)和UI(User Interface)层的连接桥梁.
3、既然称作业务层,必然有他的用处,不仅仅是一个中转的功能.
创建一个用户,可以用以下的逻辑表示:
namespace BLL
class 用户BLL
{
添加结果 AddUser(用户实体)
{
if(!检查用户名是否合法(用户实体.用户名))return 用户名非法;
if(!检查用户密码是否合法(用户实体.密码))return 密码非法;
if(!DAL.检查用户是否存在(用户实体.用户名))return 用户名已经存在;
int 新用户ID=DAL.添加用户记录(用户实体);
if(新用户ID>0)return 用户添加成功;
else reutrn 数据库访问出现错误!
}
}
4、但是在大部分没有严格要求的环境中,我们会习惯于把这些检查代码放在UI层,其实是不对的,从而造就了BLL层看起来就是一个中转的功能的错觉.
3.C# DAL层\BLL层\DbHelp层运用实例
额。。。 代码是死的,层是死的,人是活的。 不用太在意层的划分。
但是,为了程序的结构更清晰,和更便于维护,同时使多人并行开发不会直接影响它人的工作,分层是很有必要的。
DAL Data Access Layer 数据访问层,这个层应该是负责程序与数据中心(除了数据库,还有存储数据的文件等)的交互,也就是将数据的增删改查的操作封装起来供其它层直接使用,这样一来,做此层的开发人员只需要关心数据,而不用关心业务逻辑;
BLL Business Logic Layer 业务逻辑层,这个层是负责程序的业务逻辑,也就是对程序具体功能模块和程序执行流程的实现。此层的开发人员只需要关心程序的业务逻辑,而不需要关心数据是哪里来的,是怎么取得的等问题;
而DbHelp,个人觉得这个也应该是包含在DAL里面的(注意是包含,而不是说DbHelp就是DAL),DbHelp一般是一个类,此类一般会提供数据库访问的通过属性和方法。
简单的说,DAL需要做的是从数据源取数据和向数据源存数据,并将这些按需要分成不同的方法提供给其它层(如BLL);BLL需要做的是将程序的功能实现,需要数据的时候调用DAL提供的取数据方法,保存数据的时候调用 DAL 的存数据方法。
像你说的 insert into 这些sql语句,应该是写在DAL中的。