У мене є клас з деякою функцією за замовчуванням / спільним функціонуванням. Я використовую abstract class
для цього:
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);
}
Як бачите, у мене також є інтерфейс ITypeNameMapper
. Чи є сенс визначати цей інтерфейс, якщо у мене вже є абстрактний клас TypeNameMapper
або abstract class
достатньо?
TypeDefinition
і в цьому мінімальному прикладі є абстрактним.