Я хотел бы знать, если вы находите следующий шаблон значимым в дизайне, управляемом доменом.
Доменный слой состоит из модели и хранилища. Прикладной уровень состоит из служб, которые обрабатывают запросы из пользовательского интерфейса или из контроллеров в шаблоне Model-View-Controller.
Детали строения:
// Assembly Model:
public class Phrase
{
public int PhraseId { get; <b>private</b> set; }
public string PhraseText { get; <b>private</b> set; }
<b>public Phrase(string phraseText) { this.PhraseText = phraseText; }
public void SetId(int phraseId) { this.PhraseId = phraseId; }</b>
}
// Assembly Repository (references assembly Model):
public interface IPhraseRepository
{
Phrase SavePhrase(<b>Phrase phrase</b>);
<b>Phrase GetPhrase(int phraseId);</b>
}
// Assembly Services (references assemblies Model and Repository):
public class PhraseService
{
private IPhraseRepository _phraseRepository;
public PhraseService(IPhraseRepository phraseRepository)
{
_phraseRepository = phraseRepository;
}
public Phrase SavePhrase(string phraseText)
{
Phrase phrase = _phraseRepository.SavePhrase(<b>new Phrase(phraseText)</b>);
// doing other things like sending mail, logging, etc.
// ...
return Phrase;
}
}
В частности, имеет ли смысл переводить метод в класс сущности Phrase? В таком случае, как это будет называться?
EDIT:
Пример выше был изменен после ответа moffdub и комментария от Adeel Ansari. Изменения выделены .
Я хотел бы спросить о добавленном IPhraseRepository.GetPhrase (фразуId) и как бы вы это включили?