Single Responsibility and Dede ndencies

Если у объекта есть Единственная ответственность , может быть допустимо следующее:

public class Person
{
   public string Name;
   public DateTime DateOfBirth;

   private IStorageService _storageService;

   public Person(IStorageService storageService)
   {
      _storageService = storageService
   }

   public void Save()
   {
        _storageService.Persist(this);
   }
}

т.е. использование предоставленного сотрудника (что также помогает остановить анемию модели предметной области).

Или это должно быть так:

public class Person
{
   public string Name;
   public DateTime DateOfBirth;

   public Person()
   {
   }


}
public class StorageService
{
    public void Persist(Person p)
    {
    }
}

7
задан 11 November 2011 в 21:09
поделиться