首页 新闻 会员 周边

业务层接口和业务实现问题-Spring.NET

0
悬赏园豆:100 [已关闭问题] 关闭于 2010-10-29 22:47

现要开发两个系统,A,B共用一个数据库,也就是大部分表结构都一样,可能也有些不一样的地方;
现自己已经开发了一个底层访问数据库的封装暂叫XXHibernate,可以添加实体,修改,删除,分页,建库等常用方法;

 (1)XXHibernate实现底层数据访问
(2)IDAL数据访问接口(泛型,省了极多的代码)
(3)DAL实现数据访问接口
(4)IBLL业务访问接口
(5)BLL实现业务
(6)Model业务实体
(7)UI界面

问题在这里,由于是两套系统,
功能界面都是不一样的,我想用Spring.NET实现IBLL接口和BLL实现的分离(也就是具体的A实现和B实现无关),


下面是我的代码,但不知道我这样做是否正确,关键是业务层该怎么设计??

我的代码:

数据层
public interface IT_LogDAL
{
    add();
    update();
    delete();
    DataSet BackLog(string _strCondition);
}

public class T_LogDAL : IT_LogDAL
{
    public void add(){.....}
    public void update()
    {
    ...
    }
    public void delete(){
    ......
    }
   public DataSet BackLog(string _strCondition)
   {
     .....
   }
}

业务层
public interface IT_LogBLL
{
  int InsertLog(T_Log t);
  DataSet BackLog(string _strCondition);
}

业务实现
public class T_LogBLL : IT_LogBLL
{
  private IT_LogDAL dao=DALFactory.CreateLog(); //用工厂方式创建数据层,还有更好的方法么?
 
  public int InsertLog(T_Log t){........}
  public DataSet BackLog(string _strCondition){........}
}

 

Spring.NET配置,关键代码

<objects xmlns="http://www.springframework.net"> 
 <object id="T_LogBLL" type="BLL.T_LogBLL, BLL"></object>
</objects>

 

界面层使用:

如在某个Form1.cs中使用:

private void Form1_Load(object sender, EventArgs e)
{
 IT_LogBLL log = ContextRegistry.GetContext().GetObject("T_LogBLL") as IT_LogBLL;  
 //这样使用可行么?

 t_log t=new t_log();
 t.ip='127.0.0.1';
 .....
 log.InsertLog(t);
}

 

paaple的主页 paaple | 初学一级 | 园豆:15
提问于:2010-10-29 15:16
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册