给定一个简单的类层次结构,其中每个类都派生自一个抽象基类。每个派生类都需要以某种方式提供基类将在某些基方法中使用的枚举“值”。
例如
基类:
public abstract class AbstractFoo
{
bool SaveFoo()
{
switch (BarType){...}
}
}
和派生类
public class BananaFoo:AbstractFoo
{
//barttype = fruit;
}
public class WhaleFoo:AbstractFoo
{
//barttype = mammal;
}
有很多方法可以确保从 AbstractFoo 派生的所有类都实现属性“枚举 BarType”
public abstract BarType BarType{get;}
然后,在每个派生类中,我可以实现 BarType 以返回正确的类型,或者添加一个抽象方法来执行非常相似的操作。
public BarType BarType{get{return _bartype;}}
或者添加一个具体的方法来返回一个字段 - 然后我需要记住添加该字段,但是打字要少得多(C&P)?
推荐的方法是什么?