2010-11-13 4 views
0

J'apprends le DDD seulement 2 jours, et la question suivante avec le code?objets de domaine et de dépôt

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 

    } 
} 

Répondre

1

Il n'y a pas question claire ici, je ne peux observer ce que je peux voir

Pourquoi avez-vous une méthode appelée GetUserById dans votre modèle de domaine classe (User)? Cela ne devrait pas être ici - cela devrait être dans votre dépôt (ce qui est). C'est comme si vous appeliez votre référentiel via votre modèle de domaine - incorrect. Votre référentiel est une abstraction de votre modèle de domaine. Retirez cette méthode. Vos présentations doivent instancier vos référentiels, qui effectuent des opérations sur le modèle de domaine, et revenir à la présentation.

Votre modèle de domaine ne doit pas dépendre de quoi que ce soit.

Si vous avez d'autres questions spécifiques s'il vous plaît modifier votre question et je vais essayer de répondre.

Questions connexes