如何比较优雅的解决实体层与业务逻辑层交叉引用的问题,属三层模式的一个小细节,请教?
我的业务中要用到获取产品 "实时 "库存的逻辑,我在实体层Model建了一个类为Product,并为类建了个字段Stock用来存储此Product的库存;
以下是代码片断:
public abstract class ProductBase
{
......
private int stock = 0;
[Description( "库存量 ")]
public int Stock
{
get
{
return stock;
}
set
{
stock = value;
}
}
......
}
代码这样写我觉得有个问题,那就是库存的实时性非常强,而属性Stock的get选择器并没有明确指出如何获取库存,我认为的理想情况是将它改为下面的样子:
private int stock = 0;
[Description( "库存量 ")]
public string Stock
{
get
{
return BLL.GetProductStock(productID); //调用BLL层的方法获得库存量
}
//set
//{
// stock = value;
//}
}
但现在的问题是:业务逻辑层BLL已层引用了实体层Model,Model层再引用BLL层就会出现交叉引用而出错,请问如何解决这个问题?
------解决方案--------------------up
------解决方案--------------------up
------解决方案--------------------Model层直接写
public int Stock
{
get
{
return stock;
}
}
你怎么会想到Model层引用BLL层?
------解决方案----------