Я нахожусь в поиске лучшего (или лучшего) подхода при написании доменных служб на основе доменного дизайна. Вот псевдо-кодСлужба управления доменом-приводом
public class CustomerAccount
{
public string AccountNumber {get; set;}
public string CustomerName {get; set;}
public string PhoneNumber {get; set;}
public string HomeAddress {get; set;}
}
// Domain Service Class
public class AccountService
{
public virtual void RefreshAccount(CustomerAccount acct)
{
// Some code here to refresh the class from cache...
cache.refresh(acct)
}
}
public static class Cache
{
public static refresh(CustomerAccount acct)
{
// refreshing class here.
}
}
У меня есть вопрос, я должен иметь RefreshAccount() внутри AccountService и вызовите на это таким образом? Или просто вызовите класс кеша напрямую? В любом случае, отлично работает, но мой вопрос касается, с точки зрения дизайна, особенно DDD, какой путь является лучшим и почему?
Спасибо заранее!
Что такое 'Cache'? Это какой-то термин в домене? Или это просто кеш, используемый для сокращения ввода-вывода по соображениям производительности? –
@Jakub Yup, это еще один домен. – Kyle
Обычно кеширование относится к уровню инфраструктуры, а не к доменному слою. Сама служба домена не должна ничего знать о кешировании (если кеширование действительно не является частью вашего домена), это клиент (или какая-либо промежуточная прикладная служба), которая должна консультироваться с кешем. Кроме того, если вам необходимо вырезать данные из кеша на основе какого-либо события в домене, домен должен публично публиковать это событие, а клиенты (такие как служба кеша) могут быть уведомлены и действовать соответствующим образом. – haim770