Сообщение Использование интерфейсов для бизнес-объектов от 27.09.2017 2:21
Изменено 27.09.2017 2:22 Shmj
Использование интерфейсов для бизнес-объектов
Если в вашем проекте бизнес-объекты определены в виде классов, то при передаче из одного слоя в другой
А если вы юзаете интерфейсы без конкретных реализаций -- то будет одно преобразование, так как объект любого слоя в одну сторону преобразовывается к интерфейсу автоматически.
В мире Java такая схема более распространена. А вот в .Net интерфейсы создают только для сервисов а бизнес-объекты выполняются в виде классов. Даже в том же Guidelines есть рекомендация:
Т.е. для коллекций рекомендуют возвращать конкретный тип, а не базовый или интерфейс. Почему же? В чем минус? Ведь один хрен между слоями происходит копирование.
Автор: Shmj
Дата: 26.09.17
происходит двойное преобразование. Сначала вы преобразовываете объекты слоя A к объектам общего вида (которые определены в контрактах), затем из объектов общего вида преобразуете к объектам слоя Б.Дата: 26.09.17
А если вы юзаете интерфейсы без конкретных реализаций -- то будет одно преобразование, так как объект любого слоя в одну сторону преобразовывается к интерфейсу автоматически.
В мире Java такая схема более распространена. А вот в .Net интерфейсы создают только для сервисов а бизнес-объекты выполняются в виде классов. Даже в том же Guidelines есть рекомендация:
DO NOT use weakly typed collections in public APIs. +
The type of all return values and parameters representing collection items should be the exact item type, not any of its base types (this applies only to public members of the collection). 1
Т.е. для коллекций рекомендуют возвращать конкретный тип, а не базовый или интерфейс. Почему же? В чем минус? Ведь один хрен между слоями происходит копирование.
Использование интерфейсов для бизнес-объектов
Если в вашем проекте бизнес-объекты в контрактах определены в виде классов, то при передаче из одного слоя в другой
А если вы юзаете интерфейсы без конкретных реализаций -- то будет одно преобразование, так как объект любого слоя в одну сторону преобразовывается к интерфейсу автоматически.
В мире Java такая схема более распространена. А вот в .Net интерфейсы создают только для сервисов а бизнес-объекты выполняются в виде классов. Даже в том же Guidelines есть рекомендация:
Т.е. для коллекций рекомендуют возвращать конкретный тип, а не базовый или интерфейс. Почему же? В чем минус? Ведь один хрен между слоями происходит копирование.
Автор: Shmj
Дата: 26.09.17
происходит двойное преобразование. Сначала вы преобразовываете объекты слоя A к объектам общего вида (которые определены в контрактах), затем из объектов общего вида преобразуете к объектам слоя Б.Дата: 26.09.17
А если вы юзаете интерфейсы без конкретных реализаций -- то будет одно преобразование, так как объект любого слоя в одну сторону преобразовывается к интерфейсу автоматически.
В мире Java такая схема более распространена. А вот в .Net интерфейсы создают только для сервисов а бизнес-объекты выполняются в виде классов. Даже в том же Guidelines есть рекомендация:
DO NOT use weakly typed collections in public APIs. +
The type of all return values and parameters representing collection items should be the exact item type, not any of its base types (this applies only to public members of the collection). 1
Т.е. для коллекций рекомендуют возвращать конкретный тип, а не базовый или интерфейс. Почему же? В чем минус? Ведь один хрен между слоями происходит копирование.