Изменения документа Мнение
Редактировал(а) Alexandr Fokin 2026/09/15 13:34
От версии 1.4
отредактировано Alexandr Fokin
на 2026/09/15 12:54
на 2026/09/15 12:54
Изменить комментарий:
К данной версии нет комментариев
К версии 1.5
отредактировано Alexandr Fokin
на 2026/09/15 13:21
на 2026/09/15 13:21
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -11,8 +11,9 @@ 11 11 12 12 У этого подхода еще есть плюс, связанный с [[Expression tree ~| Деревья выражений>>doc:Разработка.NET.C#.Рантайм и типы.Expression tree | Деревья выражений.WebHome]]. А именно мы легко можем строить Expression (например для проекции или Update запроса) (открытые setter). 13 13 )))| 14 -| |{{code language="c#"}}// Entity rules (interaction interface) 15 -IEntityServices<TEntity> 14 +| |((( 15 +|{{code language="c#"}}// Entity rules (interaction interface) 16 +interface IEntityServices<TEntity> 16 16 { 17 17 // Set rules (single point of editing). 18 18 ITEntitySetter Setter { get; } ... ... @@ -21,7 +21,30 @@ 21 21 ITEntityConditions Conditions { get; } 22 22 23 23 // Discrimination union (OneOf) for invariants. 24 - IOneOf { get; } 25 -}{{/code}}|[[Specification>>doc:Архитектура и модели.Группа\. Архитектурные подходы.DDD | Domain-driven design.Specification.WebHome]] 25 + ITEntityOneOf { get; } 26 +}{{/code}}|{{code language="c#"}}interface ITEntitySetter 27 +{ 28 + TEntity Create1(Create1Param parameters); 29 + TEntity Create2(Create2Param parameters); 26 26 31 + void SetProperty1(TEntity entity, TValue propertyValue); 32 + 33 + void SetProperty2(TEntity entity, Property2Param parameters); 34 +} 35 + 36 +interface ITEntityCondition 37 +{ 38 + bool IsCondition1(TEntity entity); 39 + 40 + bool IsCondition2(TEntity entity, Conditition2Params params); 41 +} 42 + 43 +interface ITEntityOneOf 44 +{ 45 + void Process(TEntity entity, Action<TInvariant1Dto> invariant1Handler, Action<TInvariant2Dto2> invariant2Handler) 46 +}{{/code}} 47 + 27 27 49 +)))|[[Specification>>doc:Архитектура и модели.Группа\. Архитектурные подходы.DDD | Domain-driven design.Specification.WebHome]] 50 + 51 +