Паттерн Factory Method в TypeScript

Паттерн Factory Method в TypeScript

14 декабря 2022 г.

Привет!

Шаблон Factory Method — это шаблон проектирования, который используется для создания объектов без указания точного класса объекта, который будет создан. Он часто используется, когда тип создаваемого объекта определяется во время выполнения или когда необходимо создать объекты разных типов на основе конкретных требований приложения.

В TypeScript шаблон Factory Method можно реализовать с помощью функции factory, которая принимает набор параметров и возвращает объект определенного типа. Функция factory использует параметры для определения типа создаваемого объекта, а затем создает и возвращает объект.

Вот пример функции factory в TypeScript:

function createProduct(type: string): Product {
  switch (type) {
    case 'book':
      return new Book();
    case 'software':
      return new Software();
    default:
      throw new Error('Invalid product type');
  }
}

Эта функция factory принимает параметр type, указывающий тип создаваемого продукта. Затем он использует оператор switch для определения типа создаваемого объекта на основе параметра type. Если параметр type равен book, функция factory создает и возвращает объект Book. Если параметр type имеет значение software, функция factory создает и возвращает объект Software. В противном случае выдается ошибка.

Чтобы использовать функцию factory, другие классы могут вызывать ее с соответствующим параметром type для создания объекта нужного типа.

Вот пример использования функции factory:

const product = createProduct('book');

В этом примере функция createProduct вызывается с параметром type, для которого задано значение book, что приводит к вызову функции factory. для создания и возврата объекта Book.

Шаблон Factory Method — это полезный шаблон проектирования для создания объектов без указания их точного класса. В TypeScript это можно реализовать с помощью функции factory, которая принимает параметры и возвращает объект соответствующего типа. Это позволяет другим классам создавать объекты разных типов в зависимости от конкретных требований приложения.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE