У меня есть класс с некоторыми функциями по умолчанию / общий доступ. Я использую 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
в этом минимальном примере это тоже абстракция.