Mam klasę z pewnymi domyślnymi / współdzielonymi funkcjami. Używam abstract class
do tego:
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);
}
Jak widać, mam również interfejs ITypeNameMapper
. Czy zdefiniowanie tego interfejsu ma sens, jeśli mam już klasę abstrakcyjną TypeNameMapper
lub abstract class
wystarczy?
TypeDefinition
w tym minimalnym przykładzie jest również abstrakcyjny.