Ho una classe base astratta che è ereditata da diversi altri tipi. Stavano tutti usando un tipo iniettato nel loro costruttore. Così ho spostato questa proprietà nella classe base astratta. La classe base non la usa in nessuno dei suoi metodi. Tuttavia è usato in ognuna delle classi ereditarie. Dovrebbe essere nella classe base o dichiarata separatamente nelle altre classi?
public abstract class FooBase
{
protected TypeA a {get;}
protected FooBase(TypeA a)
{
this.a = a;
}
}
public class FooA : FooBase
{
public FooA(TypeA a) : base (a)
{
}
public void SomeMethod()
{
a.DoSomething();
}
}