У меня есть одна сущность Car
, если два типа Big
, Small
.
Моя HTML-страница содержит две формы для каждой из них.В зависимости от выбранной формы, я знаю о типе: Big
, Small
.
Мой TypeScript выглядит следующим образом:
public type: "Big" | "Small";
public CarSmall: Car;
public CarBig: Car;
Когда форма отправлена, я вызываю функцию:
public save(): void {
if (this.type == "Big") {
const bigCarProperties = {}; // Get data specialized for this type
save(bigCarProperties) ;
}
if (this.type == "Small") {
const smallCarProperties = {}; // Get data specialized for this type
save(smallCarProperties);
}
}
Где save()
функция принимает различное количество параметров.
Итак, мне не нравится этот подход, как его улучшить с помощью ООП в TypeScript?
Определенно, я могу создать два класса, которые расширяют родительский класс Car с помощью метода Save();
Но метод Save()
это не собственность автомобиля, это еще одна зона ответственности.
Мне не нужно заботиться о результате исходящего объекта автомобиля, независимо от того, какого типа, мне нужно просто сохранить его.