I have a class which needs to add additional properties based on Event Name. There can be many event names. How to better design this class so that it supports easy enhancement and maintenance in future.
public class MessageDecoratorServiceImpl implements MessageaDecorator {
@Override
public BaseMessage addMessageProperties(BaseMessage inputMessage ){
return decorateMessage(inputMessage);
}
BaseMessage decorateMessage(BaseMessage inputMessage) {
if(inputMessage.getEventName().equals("NewSubscription")) {
decorateSubscription(inputMessage);
}else if( inputMessage.getEventName().equals("NewContact") ) {
decorateNewContact(inputMessage);
}
}
BaseMessage decorateSubscription(BaseMessage inputMessage) {
inputMessage.getProperties().put("customFiled", "customValue");
return inputMessage;
}
BaseMessage decorateNewContact(BaseMessage inputMessage) {
inputMessage.getProperties().put("contactCustomFiled", "value");
return inputMessage;
}
}
Aucun commentaire:
Enregistrer un commentaire