Java Tutorial/Design Pattern/Prototype Pattern
Prototype Pattern Demo
<source lang="java">
public class PrototypeDemo {
private Message message; PrototypeDemo(Message message) { this.message = message; } Message makeMessage() { return this.message.makeCopy(); } public static void main(String[] args) { Message prototype = new EmailMessage(); PrototypeDemo demo = new PrototypeDemo(prototype); System.out.println("Message " + demo.makeMessage()); }
} abstract class Message {
public Message makeCopy() { try { return this.getClass().newInstance(); } catch (InstantiationException e) { return null; } catch (IllegalAccessException e) { return null; } }
} class EmailMessage extends Message {
@Override public String toString() { return "EmailMessage"; }
}</source>