использовать шаблон Builder из конструктора в подклассе

Я в настоящее время используется шаблон Builder, в точности следуя реализации Java, предложенной в статье Википедии Шаблон Builderhttp://en.wikipedia.org/wiki/Builder_pattern

Это пример кода, иллюстрирующий мою реализацию

public class MyPrimitiveObject {
  private String identifier="unknown";
  public static class Builder {
    private final MyPrimitiveObject obj = new MyPrimitiveObject();
    public MyPrimitiveObject build() { return obj; }
    public Builder setidentifier (String val) {
     obj.identifier = val;
     return this;
    }
  }
  public static Builder createBuilder() { return new Builder(); }
  @Override public String toString() { return "ID: "+identifier; }
}

В некоторых моих приложениях, использующих этот класс, я обнаружил очень похожий строительный код, поэтому я подумал о подклассе MyPrimitiveObjectв MySophisticatedObjectи переместил весь мой повторяющийся код в его конструктор... и вот в чем проблема.

Как я могу вызвать Builder суперкласса и назначить возвращаемый им объект в качестве своего экземпляра?

public class MySophisticatedObject extends MyPrimitiveObject {
  private String description;
  public MySophisticatedObject (String someDescription) {
    // this should be the returned object from build() !!
    Builder().setidentifier(generateUUID()).build()
    description = someDescription;
  }     
}

5
задан PA. 10 April 2012 в 16:15
поделиться