假设我有以下课程
class A : Canvas
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
//the behaviour
}
}
另一个首先包含属性的类
class B : Canvas
{
private readonly A _a;
protected override void OnMouseDown(MouseButtonEventArgs e)
{
//the same behaviour
}
}
如何在没有重复代码的情况下实现相同的行为?如果我使用base.OnMouseDown(),我得到Canvas的行为是有道理的,但我需要装饰类的行为,因为我正在实现装饰器模式这里
答案 0 :(得分:1)
创建一些继承A
的基类,然后通过B
和class CommonClass : Canvas
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
//some behavior
}
//other common implementation for derived classes
}
class A : CommonClass
{
// implementation specific to "A" and overrides
}
class B : CommonClass
{
// implementation specific to "B" and overrides
}
继承它:
OnMouseDown()
因此,您将在A
和B
中获得具有相同行为的同一方法{{1}}。