Ich habe eine Klassenbibliothek (Assembly) erstellt, die Messaging, E-Mail und SMS bereitstellt. Diese Klassenbibliothek definiert eine Schnittstelle IMessenger, die die Klassen EmailMessage und SmsMessage beide implementieren.
Ich sehe, dass dies eine allgemeine Bibliothek ist, die Teil meiner Infrastrukturebene sein würde und in jeder Entwicklung verwendet werden kann/würde.
Wenn ich nun in meiner Anwendungsschicht eine Klasse habe, die eine Messaging-Komponente verwenden muss, möchte ich natürlich die von mir erstellte Messaging-Bibliothek verwenden. Außerdem werde ich einen IoC-Container (Spring.net) verwenden, damit ich meine Implementierung, d. h. entweder E-Mail oder SMS, injizieren kann.
Wenn ich also gegen eine Schnittstelle in meiner Anwendungsschichtklasse programmieren möchte, muss ich dann meine Nachrichtenklassenbibliothek in meiner Anwendungsschichtklasse referenzieren?
Ist dies eine enge Kopplung meiner Anwendungsschichtklasse mit meiner Nachrichtenklassenbibliothek?
Sollte ich die Schnittstelle - IMessenger in einer separaten Bibliothek definieren?
Oder sollte ich etwas anderes tun?