我有以下类,它允许某些对象订阅更改事件。问题是我还有 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);
}
}
}
}