Я стараюсь разрабатывать следующие принципы SOLID. Я обнаружил, что когда вы используете «принцип единой ответственности» (S SOLID), вам обычно приходится разделять классы между контейнерами данных и процессорами данных. Например, если у меня есть человек класса с 5 свойствами, который считывается из БД вместо помещения всего внутри класса, я создаю класс Person со свойствами и другим классом PersonReader, который считывает эту информацию из базы данных и создает Person.Использование «Принципа единой ответственности» заставляет мои контейнеры иметь публичные сеттеры
Если я это сделаю, мне нужно открыть свойства Person, чтобы PersonReader мог получить к ним доступ, но тогда у меня меньше инкапсуляции, чем помещение всего в черный ящик и внесение свойств только в чтение.
Я что-то упустил или это недостаток этого принципа?
Заранее спасибо
EDIT: Я изменил лицо писателя к читателю человека, потому что не было никакой необходимости, чтобы сделать сеттеры собственности общественности в начале.
Почему у вас есть PersonWriter, чтобы ваши специалисты-персоналисты были публичными? – Marcie
@Marcie: Спасибо, это было плохо. Я отредактировал вопрос. –