доменные объекты и хранилище - PullRequest
0 голосов
/ 13 ноября 2010

Я изучаю DDD только 2 дня, а следующий вопрос с кодом?

public class User
{
    public Int UserId{get;set;}
    public string Username{get;set;}
    public List<Role> Roles{get;set;}

    public User GetUserById(int userid)
    {

      // How to write the business logic?

      // How to instance userRepository?

      return userRepository.GetUserById(userid);

    }

    public List<Role> GetRoles(int userid)
    {
       // How to write ?
    }

}

public interface IUserRepository
{
    User GetUserById(int userid);
}

public class UserRepository : IUserRepository
{
  public User GetUserById(int userid)
  {

    ///ado.net code list from database

  }
}

1 Ответ

1 голос
/ 25 ноября 2010

Здесь нет четкого вопроса, я могу наблюдать только то, что вижу:

Почему у вас есть метод с именем GetUserById в классе модели вашего домена (Пользователь)? Это не должно быть здесь - это должно быть в вашем хранилище (что это такое). Это похоже на то, как вы звоните в свой репозиторий через модель вашего домена - что является неправильным . Ваш репозиторий является абстракцией модели вашего домена. Удалите этот метод.

Ваши презентации должны создавать экземпляры ваших репозиториев, которые выполняют операции с моделью предметной области, и возвращаться обратно к презентации.

Ваша модель домена не должна зависеть ни от чего .

Если у вас есть какие-либо другие конкретные вопросы, пожалуйста, отредактируйте ваш вопрос, и я постараюсь ответить.

...