2011-05-22 12 views
0

私は出回っこれを実装する最適なソリューションは何ですか?

によって
  • 静的クラス・プロファイル

  • クラスの友人

  • プロファイルが持っていることをやる友人

    を持っている唯一つのプロファイルを持つことになりますプロジェクトで働いています友人の静的なコレクション

が、プロファイルや友人の名前、PICと同じ変数を持っている..など

ので、私は人抽象クラスを作成し、それを

を継承することを決定した後、私は、静的なクラスを継承することができないことがわかった[プロフィール]人からの変数のプロパティを持っていないよう

ので、私は個人的にstaticとして

を変数を作った静的変数は、友人のクラスに

に属しますよう、その後、すべての友人は、その変数を持っていません0

私はこれに新しいです、そして、私はそれが愚かな質問だと知っています!

が、何この

を実施するための最良の方法は、私は静的クラスを使用してユーザー補助の目的で

+1

は、おそらくあなたは、静的変数は、全員が同じ価値を共有する意味ことを知っている?::

しかし、バックのデザインに行く、多分Userクラスを導入してみてください?たぶんあなたは静的を全く使わず、人のクラスからすべてを派生させるべきです。 – tofutim

+0

はい、友人は同じ値を共有していませんが、プロファイルは1つだけです。他のクラスのプロファイルにアクセスしたいので、静的に実装することをお勧めします。 –

答えて

3

回避を静的物事を用いた好ましいアクセシビリティ

のプロファイルのための静的を使用する好ましいです。 1つのインスタンスが必要な場合は、ただ1つのインスタンスを作成します。静的クラスはテストを困難にします。

class User 
- name 
- picture 
- other properties 

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

友人にはユーザーにない変数があります! –

+0

他のクラスのプロファイルにアクセスしたいので、静的に実装することをお勧めします。 –

+1

@Ahmed Adel OOPの代わりに手続き型プログラミングをしようとしているように聞こえます。代わりにそれをメンバ変数にして、他のオブジェクトにProfileクラスのインスタンスを通してアクセスさせます。 – Yaur

1

はたぶん、このような何かが

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)); 
    } 
} 
関連する問題