Как править если надо добавить новое поле?через публичные/защищенные сеттеры. смысл в том, что только объект может иметь доступ к его свойствам. В приведенном коде ничего подобного нет (программные сущности … должны быть открыты для расширения, но закрыты для модификации)