Это хороший вопрос, потому что оптимальным решением ООП будет использование полиморфизма.В свой абстрактный класс Event добавьте абстрактный метод 'process', а затем в ваших подклассах реализуйте требуемую обработку.Тогда вы можете просто позвонить process()
и не заботиться о том, какой это подкласс.
Однако вы, вероятно, хотите, чтобы ваши классы Event (то есть данные) были отделены от логики, чтобы где-то вы быливероятно, в конечном итоге вы будете делать instanceof
или что-то вроде вашего перечисления.
У меня нет никаких предпочтений: возможно, один из них быстрее другого, и я, вероятно, предпочел бы использовать enum, а не instanceof, для скорости (очень хотелось бы услышать, если кто-то понимает это).
Если вы используете enum В вашем примере с событиями вы должны использовать переключатель вместо if..else.