Метод класса или хелпер-функция?

По какому принципу можно определить, каким образом выносить кусок кода? Хелпер или метод?

Например есть класс для обработки Http-запросов.

class HttpClient {
  // ... rest get, post, patch, etc methods
  public transformResponse<T>(response: Response, type: string): T {
    switch (type) {
      case 'json': {
        return response.json();
      }

      case 'text': {
        return response.text();
      }
      
      case 'blob': {
        return response.blob();
      }

      default: {
        return response.json();
      }
    }
  }
}

как видно из примера, метод transformResponse преобразует сырой ответ от сервера (FetchApi) в какой-то конкретный тип данных, в зависимости от агрумента type

Меня смущает, что хоть и этот процесс действительно по смыслу относится к работе HttpClient, но тем не менее, является некой дополнительной логикой, которая должна быть вынесена в обычную helper-функцию. Как минимум потому что, нет абсолюнтно никакого смысла содержать ее в классе, т.к. она не ссылается ни на какой this, по сути не требуя никакого контекста выполнения. Однако и сказать, что эта функция будет выполняться где-то вне класса я тоже не могу.

Возможно стоит ее вообще вынести в декоратор для каждого метода http-запроса?


Ответы (0 шт):