【发布时间】:2012-02-03 09:18:30
【问题描述】:
我已经有了一个运行良好的分层数据访问设计。但我不知道这是否是最合适的实现。
我只是想知道 BLL 类或方法应该是静态的还是应该是只有一个实例的 concreate 类?
同时,我不需要序列化 BLL 类来在这样的 SOA 设计中使用它。但我不知道这个功能会带来什么。
查看以下选项:
- BLL 类和方法是静态的
- BLL 类不是静态的,但它的方法是静态的
- BLL 类不是静态的,也不是它的方法。应用程序应每次创建 BLL 类以访问其方法。
- BLL 类不是静态的,也不是它的方法。但是每个 BLL 类只有一个实例。并且应用程序使用这些静态实例来使用 BLL 方法。
哪一个在性能和设计方面最有效?
编辑:
选项1
public static class BllCustomer
{
public static List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer.GetCustomers();
选项2
public class BllCustomer
{
public static List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer.GetCustomers();
选项3
public class BllCustomer
{
public List<ModelCustomer> GetCustomers()
{
}
}
// usage
BllCustomer bllCustomer = new BllCustomer();
bllCustomer.GetCustomers();
选项4
public class BllCustomer
{
public List<ModelCustomer> GetCustomer()
{
}
}
// usage
public static BllCustomer s_BllCustomer = new BllCustomer();
// whenever needed
s_BllCustomer.GetCustomer();
【问题讨论】:
-
为什么人们要坚持不对这个问题发表意见,我简直无法理解。可能,他们在许多其他问题中看不到这个话题。是的,我在自言自语。
标签: static-methods data-access bll