om o advento dos métodos de extensão, as classes abstratas são menos atraente
Um aspecto interessante dos métodos de extensão no .NET é o fato de que você pode aplicá-los às interfaces. Para mim, parece bom que eu possa definir a funcionalidade perto da interface sem definir uma classe abstrata que perturbe o assembl
Sei que as classes abstratas não são obsoletas nem nada, mas como você se sente ao utilizar esse efeito colateral no seu códig
Exemplo
public static class IUserExtensions
{
public static bool IsCurrentUser(this IUser user)
{
return (HttpContext.Current.User != null &&
HttpContext.Current.User.Identity.Name == user.ID.ToString());
}
}
public interface IUser {
int ID { get; set; }
}