我正在开发一个系统来为流程建模。Process 的一个属性是它的速率。我认为 Rate 是一个值对象,因为它没有特定的身份。这个费率是从我不拥有的服务(想想 SOA,而不是 DDD 服务)中检索的。对于每种类型的流程,服务可能会有所不同,因为流程有团队和服务来支持他们保存我想要的数据。我如何在 DDD 中组织它?
这里有一些代码可以帮助解释:
class Process
{
private final Rate rate;
...
public Process( Rate rate )
{
this.rate = rate;
}
public Rate getRate()
{
return this.rate;
}
...
}
class ProcessFactory
{
public Process createProcess( ProcessSpecification spec );
}
class ProcessRepository
{
public Process getProcessByName( String name );
}
如果 ProcessSpecification 包含一个 RateSpecification 来描述哪个服务调用费率,ProcessRepository 是否应该负责知道如何从各种其他服务加载费率?