Я натолкнулся на небольшую кирпичную стену, когда речь заходит о реализации расширяемого класса, который использует шаблон builder в java 1.4. Сам шаблон работает, но я натолкнулся на кирпичную стену, когда речь заходит о том, чтобы сделать его расширяемым из-за отсутствия шаблонов.
На данный момент лучшее решение, которое мне удалось найти, - это иметь абстрактный внутренний класс Builder
внутри родительского элемента. Затем он содержит защищенный конструктор для всех необходимых параметров, общих для дочерних классов, и некоторый Javadoc, чтобы сообщить пользователю, что ему нужно реализовать свой собственный метод build()
, который возвращает объект того же типа, что и возвращаемый класс. Это работает, если люди RTFM, в противном случае он ломается ... что плохо. Любые идеи приветствуются.
примечание: я застрял, работая в версии 1.4, так как это виртуальная машина специального оборудования, на которой она рассчитана.