我的BL中有多个类使用了多个对象。
我想了解这些对象应该如何实现以及如何存储它们。
我不想从服务层传递它们。 我的想法是在BL中创建一个单例类,其他所有人都会使用它。 这是合理的解决方案吗?我知道很多人认为单身人士是一个反模式。
由于
答案 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)
恕我直言,我们有静态类来处理业务层/服务中的一些共享功能。这应该不是问题。
您必须划分这些类的正确用途并使用它们。如果您可以提供一些用例或发现静态/单例最适合您的用例,则可以与之对齐