2009-05-11 3 views

Répondre

2
User john; 
List<User> managers = fred.Managers(); //get managers of this user 

Office london; 
List<User> managers = london.Managers(); //get managers of this office 

moins que ce soit une méthode statique, en faire une méthode d'une classe dont vous avez une instance: inutile de faire getUsers une méthode non statique de la classe utilisateur, car alors vous auriez besoin d'un utilisateur instance afin d'appeler la méthode getUsers.

1

Personnellement, je aime le premier. L'utilisateur est une entité et non une collection. Le bureau est celui qui contient les gestionnaires.

Je créerais probablement aussi une classe UserList.

public class UserList : List<User> 
{} 

class User 
{ 
    public int id {get; set;} 
    public bool IsManager { get; set;} 
} 

class Office { 
    private UserList _users; 
    UserList Managers 
    { 
     get { return (UserList) _users.FindAll(x => x.IsManager);} 
    } 
} 
3

La première solution est la meilleure, parce que User ne sait pas/ne doit pas comment Office fonctionne et comment obtenir une liste des gestionnaires.

2

Similaire aux autres réponses, je préfère la première solution. Après tout, quelle relation un utilisateur a-t-il avec la collection recherchée? Comment le client trouverait-il un utilisateur avec lequel effectuer une recherche?

Questions connexes