Приложение реализует автосалон, который по марке автомобиля выводит описание модели.
- Получать марку автомобиля от пользователя.
- Возвращать описание через
GetDescription(). - Сделать фабрику, которая по
enum CarTypeвозвращаетICar. - Определить интерфейсы
IElectric,IGas. - Определить интерфейсы коробки передач
IMechanical,IAutomatical. - Сделать абстрактный класс
ACarс общей реализацией. - Каждый автомобиль должен быть отдельным классом.
-
Interfaces.csICarс методомstring GetDescription().IElectricсBatteryKilowattHours.IGasсEngineTypeиHorsepower.ITransmissionсGetTransmissionInfo().IMechanicalиIAutomaticalнаследуются отITransmission.
-
ACar.cs- Абстрактный класс
ACarреализуетICar. - Хранит общие свойства:
Make,Model,Seats,Year,Color,Transmission. - Содержит общий
GetDescription(). - Декларирует абстрактные методы
GetMaxSpeed(),GetSafetyRating(),GetEngineType().
- Абстрактный класс
-
CarStructure.csElectricCar : ACar, IElectric- добавляет
BatteryKilowattHours. - дополняет
GetDescription(). - реализует
GetMaxSpeed(),GetSafetyRating(),GetEngineType().
- добавляет
GasCar : ACar, IGas- добавляет
EngineType,Horsepower. - дополняет
GetDescription(). - реализует
GetMaxSpeed(),GetSafetyRating(),GetEngineType().
- добавляет
-
Gears.csMechanicalGear : IMechanical.AutomaticalGear : IAutomatical.- Хранит и возвращает информацию о коробке передач.
-
ConcreteCars.cs- Отдельный класс для каждой марки автомобиля из
CarTypes.cs. - Пример:
Tesla,Zeekr,BMW,LadaGranta,Lamborghiniи др.
- Отдельный класс для каждой марки автомобиля из
-
CarFactory.csCarFactory.Create(CarType type)возвращает нужныйICar.
-
Program.cs- Запуск CLI-программы.
- Выводит список доступных марок.
- Читает ввод пользователя.
- При
doneзавершает работу.
dotnet run --project .\CS-cars.csprojАвтосалон запущен. Введите марку автомобиля или done для выхода
Доступные марки:
- Lamborghini
- Porsche
- Ferrari
- Bugatti
- Maibach
- Lixiang
- Zeekr
- Tesla
- BMW
- Mercedes
- Toyota
- Lada
Введите марку автомобиля или done: Tesla
Tesla: Model S model, 2024 year, white color, 5 seats, automatic transmission with sport mode, electrical car with 100 kWh battery