Ich lerne etwas über das Prinzip der Abhängigkeitsinversion. Es sagt, dass:
High-Level-Module sollten nicht von Low-Level-Modulen abhängen. Beides sollte von Abstraktionen abhängen.
Für eine Weile habe ich versucht zu verstehen, was es bedeutet, dass sowohl die Komponenten auf hoher Ebene als auch die Komponenten auf niedriger Ebene sich auf die Abstraktionen verlassen und von ihnen abhängig sind .
Ich gehe davon aus, dass beide in irgendeiner Weise von derselben Abstraktion abhängen sollten . Bitte korrigieren Sie mich, wenn dies falsch ist.
Ich bin zu einem Schluss gekommen, was dies bedeutet. Bitte bestätigen Sie, ob dies korrekt ist.
" Die übergeordneten Komponenten sind abhängig von der Abstraktion" - Bedeutung:
Die Komponenten auf hoher Ebene kommunizieren mit einer Schnittstelle, um mit den Komponenten auf niedriger Ebene zu kommunizieren , anstatt direkt mit konkreten Komponenten auf niedriger Ebene zu kommunizieren. Die Low-Level-Komponenten implementieren diese Schnittstelle.
" Die Low-Level-Komponenten sind abhängig von der Abstraktion" - Bedeutung:
Die Low-Level-Komponenten werden in Bezug auf die Schnittstelle definiert und entworfen. Sie sind so konzipiert, dass sie zur Schnittstelle passen . Sie sind abhängig von der Schnittstelle, so wie die Schnittstelle definiert, wie sie gestaltet sind. (Oft implementieren Low-Level-Klassen diese Schnittstelle).
Auf diese Weise sind sowohl die Komponenten auf hoher als auch die Komponenten auf niedriger Ebene "von der Abstraktion abhängig", jedoch auf unterschiedliche Weise.
Ist das ein gutes Verständnis?
quelle
Antworten:
Ihr Verständnis des Konzepts ist sehr genau.
Wenn Sie jetzt auf Ausnahmen, Sonderfälle oder philosophische Kleinigkeiten hinweisen, werden Sie von Ihrer gegenwärtigen Klarheit des Konzepts abgelenkt.
Ich würde jedoch vorschlagen, dass Sie UML-Symbole verwenden:
quelle
Ja, viele Leute denken an Software-Konstruktion wie an Hochbau. Die DB ist das "Fundament", auf dem sich die DAL befindet, die Business-Schicht befindet sich auf der DAL, die Benutzeroberfläche befindet sich auf der Business-Schicht ...
Stellen Sie es sich stattdessen als hängendes Handy vor. Wo die "Schichten" an einem gemeinsamen Anker hängen. Benutzeroberfläche und Business Layer hängen beide an der Business-Schnittstelle, Business Layer und DAL hängen beide an der DAL-Schnittstelle, DAL und Datenbank verbinden sich über die DB-Schnittstelle.
quelle