2012-02-21 13 views
0

私は次のように、公共の財産「のAppController」で、クラスを持っている:Baseクラスのプロパティを使用する派生クラスですか?

public class FAST 
{ 
    #region Props 

    public AppController.AppControllerClass appController = new AppController.AppControllerClass(); 

    #endregion 

    #region Contructors 

    public FAST(AppController.AppControllerClass appcontroller) 
    { 
     this.appController = appcontroller; 
    } 

    #endregion 
} 

私はFASTののAppControllerを使用したいした他のいくつかのクラスを持って、上記class.Theyは次のようになり:

public class Forecast 
{ 
    #region Properties 

    private int _forecastnumber; 

    public int ForecastNumber 
    { 
     get { return _forecastnumber; } 
     set { _forecastnumber = value; } 
    } 

    private DateTime _startdate; 

    public DateTime StartDate 
    { 
     get { return _startdate; } 
     set { _startdate = value; } 
    } 

    private DateTime _enddate; 

    public DateTime EndDate 
    { 
     get { return _enddate; } 
     set { _enddate = value; } 
    } 

    private DateTime _deadline; 

    public DateTime Deadline 
    { 
     get { return _deadline; } 
     set { _deadline = value; } 
    } 

    private string _name; 

    public string Name 
    { 
     get { return _name; } 
     set { _name = value; } 
    } 

    private string _type; 

    public string Type 
    { 
     get { return _type; } 
     set { _type = value; } 
    } 

    private string _description; 

    public string Description 
    { 
     get { return _description; } 
     set { _description = value; } 
    } 

    private string _status; 

    public string Status 
    { 
     get { return _status; } 
     set { _status = value; } 
    } 

    #endregion 

    #region Constructors 

    public Forecast() 
    { 

    } 
    #endregion 

    #region Methods 

    public static void InsertForecast(Forecast forecast) 
    { 
     try 
     { 
      this.appController.Execute(appController.nDC.FASTData.InsertForecast(forecast.StartDate, forecast.EndDate, forecast.Deadline, forecast.Type, forecast.Name, forecast.Description, forecast.Status)); 
     } 
     catch (Exception ex) 
     { 
      this.appController.LogError(ex); 
     } 
    } 

    #endregion 
} 

私は、その後、AppControllerの中に渡し、一度FASTクラスを宣言し、自由に私の他のクラスを使用できるようにしたい、と彼らはFASTクラスののAppControllerを使用します。

これはまったくできますか? (継承?)

ありがとうございました。

答えて

1

FASTクラスの静的クラスが必要なようです。 AppController変数をstaticとして定義すると、どこからでもアクセスできます。

1

私は相続に反対します。継承は、 "is"関係を示唆しています。 「予測は、アプリコントローラの特殊バージョンです。」オブジェクト構成の特殊な形態である集約は、「有する」関係を示唆する。 "予測にはアプリコントローラがあります。"

http://en.wikipedia.org/wiki/Object_composition#Aggregation

あなたは予想のプロパティとしてごFASTオブジェクトを設定するためのsetterメソッドを追加することができます。

public FAST appController { get; set; } 

そして

var f = new FAST(new AppController.AppControllerClass()); 
var forecast = new Forecast(); 
var forecast2 = new Forecast(); 
forecast.appController = f; 
forecast2.appController = f; 
+0

感謝を。私がこのメソッドについて気に入らないのは、予測クラスを使用するか、クラスのインスタンスを作成するたびにappControllerを設定する必要があるということです。 – Rivka

+0

あなたは依存性注入を考慮しましたか? Ninjectのようないくつかの良い.NETライブラリがあります。 –

関連する問題