Ich möchte ein Domänenmodell mit internen Schnittstellen entwerfen und dann eingeschränkte öffentliche Schnittstellen (für Benutzer der Baugruppe) erstellen
Während dies in CSharp möglich ist, stoße ich immer wieder auf unübersichtlichen Code im Zusammenhang mit parallelen Schnittstellen:
public interface IAccount { IList<ITran> Transactions { get; } }
internal interface IAccountInternal : IAccount { IList<ITranInternal> Transactions { get; } }
internal class Account : IAccountInternal { }
Hier wird die Implementierung von Account sehr unübersichtlich, da es viele Sammlungen gibt, die doppelte Schnittstellen usw. benötigen.
Außerdem möchte ich sicherstellen, dass die öffentlichen Schnittstellen über die internen Schnittstellen implementiert werden (im Gegensatz zum direkten Zugriff auf die konkreten Klassen)
Dies muss ein häufiges Szenario sein. Kann jemand einen sauberen Ansatz empfehlen?