Правильно ли я реализую фабрику Java на основе дженериков?

Я не верю, что реализую фабричный шаблон правильно, потому что метод Application class ' createDocument принимает любой тип класса, public abstract class Document { public Document () { System.out.println («Создан новый экземпляр документа:» + this.toString ()); } }

  • DrawingDocument.java

     пакет com.example.factory
    
    открытый класс DrawingDocument расширяет Document {
     public DrawingDocument () {
     System.out.println ("Создан новый экземпляр DrawingDocument:" this.toString ());
     }
    }
    
  • Application.java

     пакет com.example.factory;
    
    public class Application {
     public  T createDocument (Class  documentClass) {
     пытаться {
     вернуть documentClass.newInstance ();
     } catch (InstantiationException e) {
     выбросить новое исключение IllegalArgumentException (e);
     } catch (IllegalAccessException e) {
     выбросить новое исключение IllegalArgumentException (e);
     }
     };
    }
    
  • Main.java

     пакет com.example.factory;
    
    public static void main (String [] args) {
     Приложение application = новое приложение ();
     application.createDocument (DrawingDocument.class);
    }
    
  • 14
    задан Andrew 31 May 2011 в 07:55
    поделиться