2011-05-22 5 views
0

Je travaille avec le projet qui aura un seul profil qui a des amisQuelle est la meilleure solution pour mettre en œuvre cela?

Je allready que par

  • profil de classe statique

  • ami de classe

  • profil

    a collection d'amis statique

mais le profil et un ami ont les mêmes variables telles que nom, image, etc ..

donc je décide de faire une personne classe abstraite et hériter

alors je trouve que je ne peux pas hériter classe statique [profil ] d'une personne en tant que variables ne seront pas des propriétés

donc je fait que les variables statiques en personne

alors chaque ami n'a pas ses variables comme variables statique appartient à la classe ami

Je suis nouveau à ce sujet et je sais que c'est une question stupide !!

mais quelle est la meilleure façon de mettre en œuvre cette

I préféré L'utilisation statique Pour le profil de l'accessibilité

Je préfère utiliser des choses statiques à des fins d'accessibilité

+1

On peut supposer que vous êtes conscient du fait que signifie une variable statique tout le monde partage la même valeur ? Peut-être que vous ne devriez tout simplement pas utiliser statique et dériver tout d'une classe de personne. – tofutim

+0

oui, les amis ne partagent pas la même valeur mais le profil en un seul, je veux accéder au profil de toute autre classe, donc je préfère l'implémenter comme –

Répondre

3

Évitez d'utiliser des classes statiques. Si vous voulez une instance, créez simplement une instance. Les classes statiques rendent les tests difficiles.

Pour en revenir à la conception, peut-être essayer l'introduction d'une classe d'utilisateurs:

class User 
- name 
- picture 
- other properties 

class Profile 
- User myAccountInfo 
- List<User> friends 
+0

statique peut avoir des variables qui ne sont pas dans l'utilisateur !! –

+0

Je veux accéder au profil de n'importe quelle autre classe donc j'ai préféré l'implémenter comme –

+1

@Ahmed Adel il semble que vous essayez de faire de la programmation procédurale au lieu de la POO ... ne faites pas cela. Au lieu de cela, faites-en une variable membre et demandez à d'autres objets d'y accéder via une instance de la classe Profile. – Yaur

1

Peut-être quelque chose comme ça ?:

class User 
{ 
    public User(string name, object picture) 
    { 
     Name = name; 
     Picture = picture; 
    } 

    public string Name { get; set; } 
    public object Picture { get; set; } //Change object to a class that holds Picture information. 
} 

class Profile : User 
{ 
    private static Profile _profile; 

    public List<User> Friends = new List<User>(); //This List<T> can contain instances of (classes that derive from) User. 

    public Profile(string name, object picture) : base(name, picture) { } 
    public static Profile GetProfile() 
    { 
     return _profile ?? (_profile = new Profile("NameOfProfileHere", null)); 
    } 
} 
Questions connexes