现要开发两个系统,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);
}