You Don’t Need an Interface for Everything argues that spray-painting IOrderService, IEmailService, IPaymentService on every class—despite having exactly one implementation—just clutters your code. Interfaces only earn their keep when you actually have multiple implementations, need true polymorphism, or are building a plugin-style architecture. Otherwise they’re just ceremony that comes straight out of how .NET DI tutorials teach you to register services.
Instead of reflexively folding every class behind an interface, think about whether you really need swap-ability or mocking. In many cases you can lean on simple delegates, virtual methods (overrides), or even just good comments to keep things testable and extensible without an avalanche of pointless abstractions.
Watch on YouTube
Top comments (0)