重构公共代码的最佳方法

时间:2016-10-18 05:28:14

标签: c#

考虑以下两个从接口实现一堆属性的类:

接口代码:

cellInfo

第1课:

public interface ISample
{
    int x;
    string y;
}

第2课:

public class SampleA: ISample
{
    public int x { get; set; }
    public string y { get; set; }
}

唯一不同的是public class SampleB: ISample { public int x { get; set; } [Decorated] public string y { get; set; } } 有一个属性用属性装饰。

这是高度简化的,所讨论的类有更多属性,但主要区别是一个类有一些属性装饰的属性。

将来会出现一些情况,会引入更多类来实现SampleB接口,并觉得这些类可能应该从抽象类或其他东西继承一些公共代码。

重构此代码的好方法是什么?

1 个答案:

答案 0 :(得分:5)

尝试此解决方案:Sample类的所有属性都为virtual,如果您想在带有属性的带有属性的类中装饰其中一些属性,只需override

public class Sample
{
    public virtual int x { get; set; }
    public virtual string y { get; set; }
}

public class SampleA : Sample
{
}

public class SampleB : Sample
{    
    [Decorated]
    public override string y { get; set; }
}