Java Tutorial/Design Pattern/Prototype Pattern

Материал из Java эксперт
Перейти к: навигация, поиск

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>