Изменения документа Мнение

Редактировал(а) Alexandr Fokin 2026/09/15 13:34

От версии 1.4
отредактировано Alexandr Fokin
на 2026/09/15 12:54
Изменить комментарий: К данной версии нет комментариев
К версии 1.5
отредактировано Alexandr Fokin
на 2026/09/15 13:21
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -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 +