我对 SOLID 原则还不熟悉。我有这样的场景:
class ErrorClass {
constructor(name: string, description: string) {
//
}
}
class Class1 {
public someMethod() {
try {
// good scenario
} catch (error) {
throw new ErrorClass("Error Name","Error Description");
}
}
}
这有错吗?我是否可以直接从
ErrorClass
调用 Class1
还是我应该将 ErrorClass
作为依赖项注入到 Class1
中?我担心如果我必须注入不同的错误类以及它可能依赖的其他类,我的 Class1
构造函数会变得臃肿?
我建议您阅读跨领域关注点。以下是一些链接:
请注意,在大多数情况下,他们给出了 Logger 类的示例作为横切关注点 - 记录器是每个类都需要的东西,并且根据 SOLID 原则,它应该作为 ctor 参数注入到每个类,对吧?错误的。 Logger 类是 SOLID 原则的一个例外,因为它是一个跨领域关注点。
就您而言,您的
ErrorClass
也是一个跨领域关注点。因此,它应该是全局静态的,而不是作为参数注入到ctor中。