Tengo una clase con alguna funcionalidad predeterminada / compartida. Yo uso abstract class
para ello:
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 puede ver, también tengo la interfaz ITypeNameMapper
. ¿Tiene sentido definir esta interfaz si ya tengo una clase abstracta TypeNameMapper
o si abstract class
es suficiente?
TypeDefinition
en este ejemplo mínimo también es abstracto.