域驱动设计 - 用于定义角色的接口

时间:2010-08-09 10:43:55

标签: domain-driven-design

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

例如:

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 :(得分:0)

很难说问题中贴出的信息......

从行为开始,验收测试或使用场景。 (我不想从空气中弥补一个场景。)

角色是协作对象之间的关系。例如对象B可以是对象A的依赖关系,监听器或策略/策略。

所以现在你需要从Object A的角度进行设计,即 Outside-in 。例如汽车对其驾驶员的期望是什么?这些行为将转化为驱动程序角色的成员。