У меня есть Class A
с довольно большим количеством переменных-членов. Чтобы сделать его неизменным и проверять переменные-члены во время построения, я сделал его конструктор закрытым и использовал внутренний открытый класс статического строителя (ClassABuilder
) для его создания. (Джошуа Блох Эффективная Java, пункт 2).Наследование класса, построенного с использованием статического внутреннего класса Builder
Теперь я не понимаю, как другие программисты будут подклассы Class A
, чтобы реализовать свое собственное поведение. Я прочитал недостатки шаблона Builder из книги, но не заметил, что подклассификация упоминается как одна. Я что-то упускаю? Есть ли элегантный способ обойти это?
Создание конструктора protected
было одной из моих мыслей, но оно все равно будет принимать статические ClassABuilder
, поэтому как добавить новые переменные-члены в подкласс?
Это работает. Это какой-то анти-шаблон или что-то, что обычно делается? – Abe
Это объектно-ориентированный дизайн. Затем вы можете просто добавить в ClassBBuilder дополнительные переменные-члены, которые были добавлены в ClassB. – Jonathan