Домен против DTO против ViewModel - как и когда их использовать?

В многослойном проекте с Доменным уровнем (DL) / Бизнес (сервисным) уровнем (BL) / Презентационным уровнем (PL), каков наилучший подход для доставки сущностей на уровень презентации?

DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;

Опция 1:

DL => DO => BL => DTO => PL => VM => V

Этот вариант кажется наилучшей практикой, но также кажется тяжелым для поддержания.

Вариант 2:

DL => DO => BL => DTO => PL => V

Этот вариант кажется не очень хорошей практикой, но так как DTO почти идентичны виртуальной машине, мы можем передать его непосредственно в View, и он 'Менее болезненным для реализации и обслуживания.

Является ли эта опция надежной и для нескольких макетов, например, для мобильных устройств мне может потребоваться меньше информации от BL, поэтому мне понадобится другая виртуальная машина для этого конкретного макета?

Ответы на вопрос(4)

Ваш ответ на вопрос