Шаблон репозитория по сравнению с “умными” [закрытыми] бизнес-объектами

Другой вариант, когда вам нужно иметь возможность перейти к функциям библиотеки C:

let str = hexColour.cStringUsingEncoding(NSUTF8StringEncoding)
let x = strtol(str!, nil, 16)
57
задан 4 revs, 4 users 100% 3 July 2015 в 21:57
поделиться

2 ответа

Я использую шаблон репозитория из-за принципа единой ответственности. Я не хочу, чтобы каждый отдельный объект знал, как сохранять, обновлять, удалять самого себя, когда это может обрабатываться одним общим репозиторием

39
ответ дан 24 November 2019 в 19:45
поделиться

Шаблон репозитория не обязательно ведет к тупым объектам. Если у объектов нет логики за пределами сохранения / обновления, вы, вероятно, слишком много делаете вне объекта.

В идеале вам никогда не следует использовать свойства для получения данных от вашего объекта, вычислений и помещения данных обратно в объект. Это нарушение инкапсуляции.

Таким образом, объекты не должны быть анемичными, за исключением случаев, когда вы используете простые объекты DTO с операциями CRUD.

Тогда разделение проблем сохранения и ваших объектов - хороший способ получить единую ответственность.

16
ответ дан 24 November 2019 в 19:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: