Am I implementing a generics-based Java factory correctly?

后端 未结 3 1360
青春惊慌失措
青春惊慌失措 2021-02-05 14:40

I don\'t believe I am implementing the factory pattern correctly because the Application class\' createDocument method accepts any class type, not just

3条回答
  •  离开以前
    2021-02-05 14:58

    The code looks good. In a real implementation the factory method should not be declared to throw any of the reflection-related exceptions. And you will probably have some different code anyway to create the document.

    The faxtory method should take a Class as its parameter, so that one cannot ask it to create a String, for example.

    [update:] Code sample:

    public Document createDocument(Class clazz) {
      try {
        return clazz.newInstance();
      } catch (InstantiationException e) {
        throw new IllegalArgumentException(e);
      }
    }
    

提交回复
热议问题