2016-06-17 4 views
0

Есть ли лучший способ создания объектов с использованием spring autowiring или любым другим design patterns?Создание объекта наследования с использованием пружины

У меня есть различных типов событий, я стараюсь избегать повторения case заявление 100 раз.

+0

Чтобы не писать операторы if или case, вы должны построить полиморфную структуру. Создайте интерфейс и реализуйте его с помощью своих событий. Тогда вы можете иметь все объекты, реализующие этот интерфейс с отражением java. проверьте это: http://stackoverflow.com/questions/435890/find-java-classes-implementing-an-interface – Neron

ответ

0

Объявите ApplicationContext:

@Autowired 
ApplicationContext context; 

Затем выполните команду:

EventBean event = (EventBean) context.getBean(eventType); 

Вы должны назвать бобы событий, так что тип соответствует их имя.

+0

вы можете объяснить? как context.getBean проверяет условие eventType и создает соответствующий объект? константы определены с тремя символьными значениями; cancel = cxe, create = cre и т. д. – ViratKohli

+0

У ваших бобов есть одно или несколько имен, по умолчанию имя метода, который вы использовали для их создания, или имя класса. 'getBean()' ищет компонент, который соответствует имени, которое вы передаете в параметре. Итак, если ваш постоянный 'CANCEL_EVENT' соответствует' CancelEventBean', он вернет этот тип события. –

+0

они не совпадают. они разные, и я не могу контролировать постоянные значения. – ViratKohli