Доменно-управляемый дизайн - интерфейсы для определения ролей - PullRequest
1 голос
/ 09 августа 2010

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

Например:

public class Car
{
    public IDriver driver { get; set;}
    public IPassenger passenger { get; set; }
}

public class Person : IDriver, IPassenger
{
}

public class Pet : IPassenger
{
}

В этом случае я хочу иметь возможность определить, что водолаз автомобиля может быть любого класса, который реализует IDriver, и любой пассажир долженвнедрить IPassenger.В случае пассажира это может быть с человеком или домашним животным.Интерфейсы по сути определяют роли каждого класса.

Что я хочу понять, так это то, что, по мнению людей, это хороший подход, или если то же самое может быть достигнуто с использованием другого механизма.

1 Ответ

0 голосов
/ 09 августа 2010

Трудно сказать с информацией, размещенной в вопросе ...

Начните с поведения , приемочного испытания или сценария использования. (Я не хочу придумывать сценарий из воздуха.)

Роли - это отношения между взаимодействующими объектами. например Объект B может быть зависимостью, слушателем или политикой / стратегией Объекта A.

Так что теперь вам нужно проектировать с точки зрения Объекта А, т.е. Снаружи в . например Что ожидает автомобиль от своего водителя? Такое поведение будет относиться к членам роли водителя.

...