I'm new to design patterns and i would like to ask how can i refactor below codes using some design patterns.
What's the best approach, to eliminate redundant if-else statements.
//It looks like your post is mostly code; please add some more details.
Here's my code:
public void onEvent(Event event) {
RealmModel realm = session.realms().getRealm(event.getRealmId());
UserModel user = session.userCache().getUserById(event.getUserId(), realm);
MQMessage queueMessage = new MQMessage();
queueMessage.setIpAddress(event.getIpAddress());
queueMessage.setModuleCode("MYACC");
queueMessage.setUsername(user.getUsername());
// To be refactored
if (EventType.LOGIN.equals(event.getType())) {
LOGGER.info("USER HAS LOGGED IN");
queueMessage.setSubModuleCode("LOGIN");
queueMessage.setTransactionDetail("Log-in");
try {
queueSender.send(queueMessage);
} catch (JMSException e) {
LOGGER.error(e.getMessage());
}
} else if (EventType.LOGOUT.equals(event.getType())) {
LOGGER.info("USER HAS LOGGED OUT");
queueMessage.setSubModuleCode("LOGOUT");
queueMessage.setTransactionDetail("Log-out");
try {
queueSender.send(queueMessage);
} catch (JMSException e) {
LOGGER.error(e.getMessage());
}
} else if (EventType.UPDATE_EMAIL.equals(event.getType())) {
LOGGER.info("USER HAS UPDATED EMAIL");
queueMessage.setSubModuleCode("");
queueMessage.setTransactionDetail("User has updated his/her email.");
try {
queueSender.send(queueMessage);
} catch (JMSException e) {
LOGGER.error(e.getMessage());
}
} else if (EventType.UPDATE_PASSWORD.equals(event.getType())) {
LOGGER.info("USER HAS UPDATED PASSWORD");
queueMessage.setSubModuleCode("");
queueMessage.setTransactionDetail("User has updated his/her password.");
try {
queueSender.send(queueMessage);
} catch (JMSException e) {
LOGGER.error(e.getMessage());
}
}
events.add(event);
}
Your help is very much appreciated. Thanks
Aucun commentaire:
Enregistrer un commentaire