いくつかのデフォルト/共有機能を持つクラスがあります。私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
この最小限の例でも抽象的です。