一个类直接调用另一个Error类是不是错误?

问题描述 投票:0回答:1

我对 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
构造函数会变得臃肿?

typescript oop error-handling dependency-injection solid-principles
1个回答
1
投票

我建议您阅读跨领域关注点。以下是一些链接:

  1. https://en.wikipedia.org/wiki/Cross-cutting_concern
  2. https://www.c-sharpcorner.com/UploadFile/vendettamit/managing-cross-cutting-concerns-the-logger-and-logging/

请注意,在大多数情况下,他们给出了 Logger 类的示例作为横切关注点 - 记录器是每个类都需要的东西,并且根据 SOLID 原则,它应该作为 ctor 参数注入到每个类,对吧?错误的。 Logger 类是 SOLID 原则的一个例外,因为它是一个跨领域关注点。

就您而言,您的

ErrorClass
也是一个跨领域关注点。因此,它应该是全局静态的,而不是作为参数注入到ctor中。

© www.soinside.com 2019 - 2024. All rights reserved.