Из 5 классов наследников сделать один класс наследник абстрактного создателя на C#

В предметной области нет классов, которые могли бы выполнить роль создателей авто (FamalyCar, SportCar, Truck и т.д.).Есть 5 классов наследников от абстрактного класса Car. Нужно эти 5 классов удалить и вместо них создать один класс наследник абстрактного создателя с одним фабричным методом с параметром и с конструкцией swith case.. Не могу сообразить, как это можно реализовать. Если есть идеи, подскажите пожалуйста!

{
    abstract class Car
    {
        public int Price { get; set; } //get получить значение //set установить значение


        public string Name { get; set; }

        public abstract void Typecar();

        public abstract void Cost();
    }

    class FamilyCar : Car
    {
        public FamilyCar()
        {
            Price = 100;
            Name = "Семейный автомобиль";
        }

        public override void Typecar()
        {
            Console.WriteLine(Name);
        }

        public override void Cost()
        {
            Console.WriteLine($"{Price}$ час");
        }
    }

    class SportCar : Car
    {
        public SportCar()
        {
            Price = 250;
            Name = "Спортивный автомобиль";
        }

        public override void Typecar()
        {
            Console.WriteLine(Name);
        }

        public override void Cost()
        {
            Console.WriteLine($"{Price}$ час");
        }
    }

    class Truck : Car
    {
        public Truck()
        {
            Price = 150;
            Name = "Грузовой автомобиль";
        }

        public override void Typecar()
        {
            Console.WriteLine(Name);
        }
        public override void Cost()
        {
            Console.WriteLine($"{Price}$ час");
        }
    }

    class Cabriolet : Car
    {
        public Cabriolet()
        {
            Price = 200;
            Name = "Кабриолет";
        }

        public override void Typecar()
        {
            Console.WriteLine(Name);
        }
        public override void Cost()
        {
            Console.WriteLine($"{Price}$ час");
        }
    }

    class SUV : Car
    {
        public SUV()
        {
            Price = 200;
            Name = "Внедорожник";
        }

        public override void Typecar()
        {
            Console.WriteLine(Name);
        }
        public override void Cost()
        {
            Console.WriteLine($"{Price}$ час");
        }
    }
    abstract class Creator
    {
        public abstract Car FactoryMethod();
    }

    class FamilyCarCreator : Creator
    {
        public override Car FactoryMethod()
        {
            return new FamilyCar();
        }
    }

    class SportCarCreator : Creator
    {
        public override Car FactoryMethod()
        {
            return new SportCar();
        }
    }

    class TruckCreator : Creator
    {
        public override Car FactoryMethod()
        {
            return new Truck();
        }
    }

    class CabrioletCreator : Creator
    {
        public override Car FactoryMethod()
        {
            return new Cabriolet();
        }
    }

    class SUVCreator : Creator
    {
        public override Car FactoryMethod()
        {
            return new SUV();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var creators = new Creator[]
            {
            new FamilyCarCreator(),
            new SportCarCreator(),
            new TruckCreator(),
            new CabrioletCreator(),
            new SUVCreator()
            };
            for(int i=0;i<2;i++)
            {
                Console.WriteLine("Выбери свой автомобиль:");
                foreach (var creator in creators)
                {
                    Console.WriteLine("");
                    var vehicle = creator.FactoryMethod();
                    vehicle.Typecar();
                    vehicle.Cost();
                }

                var userChoice = Console.ReadLine();

                Console.WriteLine("Сколько часов:");
                var hours = int.Parse(Console.ReadLine());

                foreach (var creator in creators)
                {
                    var vehicle = creator.FactoryMethod();

                    //if (userChoice == vehicle.Name)
                    //{
                        Console.WriteLine($"Это будет стоить вам {hours * vehicle.Price} за {hours} час");
                    //}
                }
            }
        }
    }
}

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