Операторы «Bad» switch часто включают тип объекта (или что-то, что может быть типом объекта в другом проекте). Другими словами, жестко кодировать то, что может быть лучше обработано полиморфизмом. Другие типы операторов switch могут быть в порядке
Вам понадобится оператор switch, но только один. Когда вы получите сообщение, вызовите объект Factory для возврата объекта соответствующего подкласса Message (Move, Attack и т. Д.), Затем вызовите метод message-> doit () для выполнения работы.
означает, что если вы добавляете больше типов сообщений, необходимо изменить только заводский объект.