一个class直接调用另一个ErrorClass是不是错了?
Is it wrong for a class to call another Error Class directly?
我是 SOLID 原则的新手。我有这种情况:
class ErrorClass {
constructor(name: string, description: string) {
//
}
}
class Class1 {
public someMethod() {
try {
// good scenario
} catch (error) {
throw new ErrorClass("Error Name","Error Description");
}
}
}
错了吗?我可以直接从 Class1
调用 ErrorClass
还是应该将 ErrorClass
作为依赖注入到 Class1
中?我担心如果我必须注入不同的错误 类 以及其他 类 它可能还依赖于?
,我的 Class1
构造函数会变得臃肿
感谢任何帮助或建议!
谢谢
我建议您阅读横切关注点。这里有几个链接:
- https://en.wikipedia.org/wiki/Cross-cutting_concern
- https://www.c-sharpcorner.com/UploadFile/vendettamit/managing-cross-cutting-concerns-the-logger-and-logging/
请注意,在大多数情况下,他们给出了记录器 class 作为横切关注点的示例 - 记录器是每个 class 都需要的东西,并且根据 SOLID 原则它应该作为每个 class 的 ctor 参数注入,对吗?错误的。 Logger class 是 SOLID 原则的一个例外,因为它是一个横切关注点。
在您的情况下,您的 ErrorClass
也是一个跨领域关注点。因此,它应该是一个全局静态,而不是作为参数注入到ctor。
我是 SOLID 原则的新手。我有这种情况:
class ErrorClass {
constructor(name: string, description: string) {
//
}
}
class Class1 {
public someMethod() {
try {
// good scenario
} catch (error) {
throw new ErrorClass("Error Name","Error Description");
}
}
}
错了吗?我可以直接从 Class1
调用 ErrorClass
还是应该将 ErrorClass
作为依赖注入到 Class1
中?我担心如果我必须注入不同的错误 类 以及其他 类 它可能还依赖于?
Class1
构造函数会变得臃肿
感谢任何帮助或建议!
谢谢
我建议您阅读横切关注点。这里有几个链接:
- https://en.wikipedia.org/wiki/Cross-cutting_concern
- https://www.c-sharpcorner.com/UploadFile/vendettamit/managing-cross-cutting-concerns-the-logger-and-logging/
请注意,在大多数情况下,他们给出了记录器 class 作为横切关注点的示例 - 记录器是每个 class 都需要的东西,并且根据 SOLID 原则它应该作为每个 class 的 ctor 参数注入,对吗?错误的。 Logger class 是 SOLID 原则的一个例外,因为它是一个横切关注点。
在您的情况下,您的 ErrorClass
也是一个跨领域关注点。因此,它应该是一个全局静态,而不是作为参数注入到ctor。