Ich habe asp.net Core-Anwendung. Die Anwendung hat wenige Hilfsklassen, die etwas Arbeit leisten. Jede Klasse hat eine andere Signaturmethode. Ich sehe viele Online-Core-Beispiele online, die eine Schnittstelle für jede Klasse erstellen und dann Typen mit dem DI-Framework registrieren. Zum BeispielBrauchen wir Schnittstellen für DI?
public interface IStorage
{
Task Download(string file);
}
public class Storage
{
public Task Download(string file)
{
}
}
public interface IOcr
{
Task Process();
}
public class Ocr:IOcr
{
public Task Process()
{
}
}
Grundsätzlich für jede Schnittstelle gibt es nur eine Klasse. Dann registriere ich diese Typen mit DI als
Aber ich kann Typ ohne Schnittstellen registrieren, so dass Schnittstellen hier redundant aussehen. zB
services.AddScoped<Storage>();
services.AddScoped<Ocr>();
Also brauche ich wirklich Schnittstellen?
Nun technisch Sie sie nicht benötigen, aber wie würden Sie die richtige Prüfung tun? Werfen Sie einen Blick auf http://softwareengineering.stackexchange.com/questions/298831/how-is-an-interface-verwendet-in-abhängigkeit-injection – DavidG
Würde nicht das spöttische Framework wie Rhino-Mock Mocks ohne Schnittstellen erstellen? – LP13
Diese Frage ist wahrscheinlich besser für http://softwareengineering.stackexchange.com. Überlege, ob du einen Moderator bitten sollst, diese Frage für dich zu stellen (poste es nicht erneut - das wird als Missbrauch betrachtet). –