我刚开始学习领域驱动设计,并有我的域名一个项目,该项目的结构是这样的:领域驱动设计 - 访问修饰符域实体
域
- /实体
- /边界
- /UserStories
据我所知DDD,除了边界与外界沟通的领域,该领域的一切都应该是无形的。所有的我都域内看到实体类的实例有一个公共接入改性剂,对于这里的例子,我有一个实体名为消息:
public class Message
{
private string _text;
public string Text
{
get { return _text; }
set { _text = value; }
}
public Message()
{
}
public bool IsValid()
{
// Do some validation on text
}
}
这岂不是更正确的,如果在实体类和其成员标记为内部,因此只能在域项目中访问?
例如:
internal class Message
{
private string _text;
internal string Text
{
get { return _text; }
set { _text = value; }
}
internal Message()
{
}
internal bool IsValid()
{
// Do some validation on text
}
}
我认为你是对的,这可能是错误的例子,我可能混合DDD与实体控制边界模式。感谢你的经验法则,帮助我很多。 –
@MikeSW:同意。一般来说,我尽可能地封装,但是这个域是核心,并且是由外层调用的。当然,不要说在程序集外部不使用的类不应该是内部的。 – eulerfx