public interface IBasePresenter
{
}
public interface IJobViewPresenter : IBasePresenter
{
}
public interface IActivityViewPresenter : IBasePresenter
{
}
public class BaseView
{
public IBasePresenter Presenter
{
get;
set;
}
}
public class JobView : BaseView
{
public IJobViewPresenter JobViewPresenter
{
get { this.Presenter as IJobViewPresenter;}
}
}
public class ActivityView : BaseView
{
public IActivityViewPresenter ActivityViewPresenter
{
get { this.Presenter as IActivityViewPresenter;}
}
}
讓我們假設,我需要對基本視點一個IBasePresenter屬性。 現在,這個屬性是由工作視圖和ActivityView繼承,但如果我需要參考IJobViewPresenter對象在這些派生類然後我需要在投IBasePresenter財產IJobViewPresenter或IActivityPresenter(我想避免),或在派生類創建JobViewPresenter和ActivityViewPresenter(如上所示)。設計以避免派生類中的類型轉換?
我想避免在派生類的類型轉換,仍然有參考IJobViewPresenter或IActivityViewPresenter,仍然有IBasePresenter的基本視角。
有沒有一種方法可以讓我實現嗎?
你可以,但沒有必要,因爲接口彼此繼承。 – 2010-04-02 17:06:24
@Steven,你能澄清你的意思嗎?我相信這個問題是如何暴露在它的派生形式的接口,因此,它是明確清晰的演示者的工作視圖始終是一個IJobViewPresenter(並假設正確使用會始終保持它的IJobViewPresenter下不僅鑄造。) – 2010-04-02 17:17:44
好的解決方案...我喜歡它...... THanks – Deepak 2010-04-02 17:20:28