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