【发布时间】:2023-04-02 10:40:02
【问题描述】:
试图分解一个大的聚合根,只是想要一些帮助,看看我做得是否正确
考虑以下聚合根“团队”,如下所示
public class Team : IAggregateRoot
{
public List<Player> Players {get; set;}
// Lots of other properties
public void AddPlayer(Player player){}
public void RemovePlayer(string playerId){}
public void MakePlayerCaptain(string playerId){}
// More Methods
}
所以为了打破它并使 Team 类更小,我创建了一个名为 Roster 的新类
public class Roster
{
public List<Player> Players {get; set;}
public void AddPlayer(Player player){}
public void RemovePlayer(string playerId){}
public void MakePlayerCaptain(string playerId){}
}
团队现在变成了
public class Team : IAggregateRoot
{
public Roster Roster {get; set;}
// Lots of other properties
// More Methods
}
这使团队更小,并为我提供了更具凝聚力的模型。
但这使我不得不查看团队聚合根目录以访问名册并进行更改。即
team.Roster.MakePlayerCaptain()
或者我只是将方法添加回团队,然后他们调用名册对象?但后来我又回到了我的 Team 对象中有很多方法(但我猜是更小的)。
处理这种事情最干净的方法是什么,或者任何人都可以将我链接到一些关于此的阅读吗?
【问题讨论】:
标签: oop refactoring