业务层辅助对象

时间:2015-03-29 13:30:12

标签: .net architecture business-logic

我的BL中有多个类使用了多个对象。

我想了解这些对象应该如何实现以及如何存储它们。

我不想从服务层传递它们。 我的想法是在BL中创建一个单例类,其他所有人都会使用它。 这是合理的解决方案吗?我知道很多人认为单身人士是一个反模式。

由于

2 个答案:

答案 0 :(得分:2)

不要使用单身或静态。它可以防止你的类被依赖注入和不灵活。即:您无法根据组件更改类行为。

最好是使用构造函数注入:

public class Usage{
    public Usage(Component1 comp1, Component2 comp2){ /*param assignment*/ }
    private Component1 comp1;
    private Component2 comp2;

    //using comp1 and comp2
}

或者如果您认为对象组合很麻烦,您可以使用.Net常用的默认对象创建。

public class Usage{
    public Component1 Comp1 = new Component1();
    public Component2 Comp2 = new Component2();

    //using Comp1 and Comp2
}

好处是,您可以使用Components更改inheritance,或者您可以使用interface作为声明,以获得更好的灵活性。

答案 1 :(得分:0)

恕我直言,我们有静态类来处理业务层/服务中的一些共享功能。这应该不是问题。

您必须划分这些类的正确用途并使用它们。如果您可以提供一些用例或发现静态/单例最适合您的用例,则可以与之对齐