我剛開始學習領域驅動設計,並有我的域名一個項目,該項目的結構是這樣的:領域驅動設計 - 訪問修飾符域實體
域
- /實體
- /邊界
- /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