Domain driven design 领域驱动设计-定义角色的接口

Domain driven design 领域驱动设计-定义角色的接口,domain-driven-design,Domain Driven Design,我目前正在为一个新的应用程序开发一个域模型,并且已经到了需要定义与可能执行相同角色的不同类型的类之间的关系的阶段,我对定义这种关系的最佳方式感到困惑 例如: public class Car { public IDriver driver { get; set;} public IPassenger passenger { get; set; } } public class Person : IDriver, IPassenger { } public class Pet

我目前正在为一个新的应用程序开发一个域模型,并且已经到了需要定义与可能执行相同角色的不同类型的类之间的关系的阶段,我对定义这种关系的最佳方式感到困惑

例如:

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

public class Person : IDriver, IPassenger
{
}

public class Pet : IPassenger
{
}
在这种情况下,我希望能够定义一辆汽车的潜水员可以是任何实现IDriver的类,任何乘客都必须实现IPassenger。如果是乘客,则可能与人或宠物在一起。接口本质上是定义每个类的角色


我想了解的是,在人们看来,这是否是一种好的方法,或者同样的事情是否可以用不同的机制来完成。

很难说问题中的信息

从行为、验收测试或使用场景开始。(我不想凭空虚构一个场景。)

角色是协作对象之间的关系。e、 g.对象B可以是对象a的依赖项、侦听器或策略

因此,现在您需要从对象A的角度进行设计,即从外部到内部。e、 汽车对司机有什么期望?这些行为将转化为驾驶员角色的成员