2010-04-13 48 views
1

我想先为我的坏英语道歉。我正在尝试在我的项目中实施DDD,但我会尝试描述一些问题。我正在开发一个聊天应用程序。前端很简单,没有房间,只有一个窗口显示最后n条消息。DDD - 识别实体,根源和服务

  1. 这是第一个问题。我在这里没有看到任何实体(ChatRoom会没事,但我只有一个房间)。消息对我来说似乎是价值对象。所以我不知道如何保存聊天状态(我认为拥有值对象的存储库是一种不好的做法)。

这个聊天应该有一个特定的功能,它应该将相关的消息组合在一起(创建类似ChatSegment的东西)。这些段将被m个关闭消息块(非主题消息表示与当前段中的消息无关的消息)分开。

  1. 我无法想象如何在不使用有状态服务的情况下完成此项工作。这种行为不适合任何实体(甚至没有进入假设的ChatRoom实体)。 Segmenter实体似乎也不错。你会如何解决这个问题?

也许我的想法完全不正确,但我需要把它们弄清楚。 谢谢,

布拉诺。

回答

0

在IM应用程序中,我会(OTTOMH)将Meassage作为具有唯一标识的实体对待。

将DDD与DNC结合起来可能会非常强大,如果您将消息类型视为“时刻”原型,并且也可能使用“角色”原型(例如Chatter),以便系统用户可以承担更多比需要的一个“角色”。

此外; “下一个/先前时刻(即消息)”的概念似乎是完美匹配。