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?