Eu tenho uma classe com algumas funcionalidades padrão / compartilhadas. Eu uso abstract class
para isso:
public interface ITypeNameMapper
{
string Map(TypeDefinition typeDefinition);
}
public abstract class TypeNameMapper : ITypeNameMapper
{
public virtual string Map(TypeDefinition typeDefinition)
{
if (typeDefinition is ClassDefinition classDefinition)
{
return Map(classDefinition);
}
...
throw new ArgumentOutOfRangeException(nameof(typeDefinition));
}
protected abstract string Map(ClassDefinition classDefinition);
}
Como você pode ver, eu também tenho a interface ITypeNameMapper
. Faz sentido definir essa interface se eu já tenho uma classe abstrata TypeNameMapper
ou abstract class
é apenas o suficiente?
TypeDefinition
neste exemplo mínimo também é abstrato.