MessageSupportFactorv Part 1 nderer, class StandardoutMessageRenderer import java. io FileInputStream; provider class import java. util. Properties; HelloWorld MessageProvider public class MessageSupportFactory private static MessaeSupportFactory instance null private Properties props null; private MessageRenderer renderer nu private MessagProvider provider null; private MessageSupportFactory o t props new Propertieso try t props. load(new FileInputstream("msf. properties")); String rendererClass=props. getProperty renderer class renderer =( MessageRenderer) Class forName(rendererClass) newInstance( String providerClass=props. getProperty provider. class"); provider =(MessageProvider) Class forName(providerClass) newInstanceo
MessageSupportFactory (Part 1) import java.io.FileInputStream; import java.util.Properties; public class MessageSupportFactory { private static MessaeSupportFactory instance = null; private Properties props = null; private MessageRenderer renderer = null; private MessagProvider provider = null; private MessageSupportFactory() { props = new Properties(); try { props.load(new FileInputStream("msf.properties")); String rendererClass=props.getProperty("renderer.class"); renderer = (MessageRenderer) Class.forName(rendererClass).newInstance(); String providerClass=props.getProperty("provider.class"); provider = (MessageProvider) Class.forName(providerClass).newInstance(); renderer.class= StandardOutMessageRenderer provider.class= HelloWorldMessageProvider
MessageSupportFactory(Part 2) 1 catch(Exception ete. printstackTrace o :y static t instance new Message SupportFactoryo public static Message SupportFactory getInstanceo t return instance public Message Renderer getMessageRenderero t return renderer, public Message Provider getMessageProviderot return provider;
MessageSupportFactory (Part 2) } catch (Exception e) { e.printStackTrace(); } } static { instance = new MessageSupportFactory(); } public static MessageSupportFactory getInstance() { return instance; } public MessageRenderer getMessageRenderer() { return renderer; } public MessageProvider getMessageProvider() { return provider; }
Hello World revised, v3) public class HelloWorldDecoupledWith Factory t public static void main(String[] args)t MessageRenderer mr MessageSupportFactory. getInstance(. getMessageRenderer: MessageProvider mp MessageSupportFactory. getInstance. getMessageProvider mr.setMessageProvider(mp) mr render
HelloWorld (Revised, v3) public class HelloWorldDecoupledWithFactory { public static void main(String[] args) { MessageRenderer mr = MessageSupportFactory.getInstance().getMessageRenderer; MessageProvider mp = MessageSupportFactory.getInstance().getMessageProvider; mr.setMessageProvider(mp); mr.render(); } }