我有以下類可讓某些對象訂閱更改事件。問題是我也有類B和C需要這個功能,允許對象訂閱相同類型的東西。我們當然不想複製和粘貼這個行爲。我們考慮繼承一個通用的基類,但是我們所有的類,包括A,B和C都已經從一個通用的BaseClass中繼承了。我們不希望將此行爲添加到BaseClass,因爲我們從BaseClass繼承的其他類E,F,G不需要此行爲。如何重構重複的事件處理代碼
有沒有更好的解決方案?
public class A : BaseClass
{
/*other properties and code */
public event EventHandler OnChange;
private bool _hasChanged;
public bool HasChanged
{
get { return _hasChanged; }
set
{
_hasChanged = value;
//only need to notify when we've changed.
if (value)
{
if (OnChange != null)
OnChange(this, EventArgs.Empty);
}
}
}
}
這是perf等。沒有繼承的混亂,它更容易維護。謝謝。 – Riz 2010-11-23 12:33:27