Я пытался узнать о DCI (взаимодействие контекста данных) (http://tidyjava.com/dci-architecture-visionary/)
Мне кажется, что «роли» можно смоделировать, создав производные классы, которые наследуются от базового класса и имеют доступ ко всем закрытым членам. Это разумное утверждение?
В качестве альтернативы, это может рассматриваться как слишком большая инфраструктура? Я имею в виду, что DCI, похоже, об отделении действий от классов. Разве это не просто хорошо, C, где у вас есть функции, которые работают со структурами?
Разница между объектами DCI и структурами объясняется в начале страницы, на которую вы ссылаетесь:
Основное различие между объектом данных DCI и типичным объектом
что объект данных является относительно глупым. Это не анемия. Оно может
по-прежнему содержат важные доменные методы, которые сохранят его
инварианты и т. д.
Это означает, что классы все еще могут содержать необходимый шаблон (методы получения, установки, конструкторы, деструкторы и более сложные вещи), которые поддерживают его согласованность (то есть убедитесь, что он используется правильно). Таким образом, реализация ваших вариантов использования не обременена этими проблемами.
Других решений пока нет …