У меня возникли проблемы с пониманием концепции фабричного дизайна.Насколько я понимаю, это позволяет вызывающему коду не беспокоиться о том, как создается отдельный объект, просто знать, что он будет реализовывать определенный интерфейс.
Я не вижу, как это сохраняет какой-либо код.
Например, если у меня было 3 типа транспортного средства
lorry, car, van
, и я создалкласс для каждого из них, я мог бы просто использовать оператор switch.В то время как с примерами фабричных классов, которые я видел до сих пор, я мог бы иметь интерфейс:
Interface vehicle {
method drive();
}
, а затем класс:
Class vehiclefac implements vehicle {
method createvehicle(type) {
// choose car type and return
}
}
мне все еще нужно использовать оператор switch длявыберите мой тип транспортного средства, в дополнение к этому, если я хочу добавить новые автомобили, мне все равно придется добавить их в конец оператора switch и создать соответствующий подкласс для их реализации.
Если кто-то может прояснить, что я не получаю, будьте очень благодарны, примеры в python особенно ценятся.