将一个类的行为复制到另一个类

时间:2017-01-23 17:08:11

标签: c# wpf

假设我有以下课程

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的行为是有道理的,但我需要装饰类的行为,因为我正在实现装饰器模式这里

1 个答案:

答案 0 :(得分:1)

创建一些继承A的基类,然后通过Bclass 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()

因此,您将在AB中获得具有相同行为的同一方法{{1}}。