Three Layer Architecture
- Umbau Teil 1 -
Layered-07g

Ausgangslage: 3-Schichten-Architektur

Layered-08

Die Datenbankschicht wird zur Infrastruktur-Schicht erweitert.

Layered-08a

Die Datenbank wird Teil der Infrastruktur-Schicht.

Layered-08b

Technische Komponenten ziehen um in die Infrastruktur-Schicht

Layered-08c

Externe Dienste ziehen um in die Infrastruktur-Schicht

Layered-09b

Die Applikationsschicht (mit der Anwendungslogik) ist die wichtigste Schicht der Anwendung: => Ein Hight-Level-Layer

Layered-09c

Die Infrastrukturschicht ist untergeordnet: => Ein Low-Level-Layer

Layered-09d

Wertvolle Schichten sollten nicht von niederen Schichten abhängen.

Layered-10

Niedere Schichten sollten von wertvollen Schichten abhängen.

Layered-11

In dem in der Applikationschicht Interfaces definiert werden ..

Layered-11a

.. und in der Infrastrukturschicht die Implementierungen erfolgen ..

Layered-11b

.. kann die Abhängigkeit umgedreht werden.

Layered-11c

Dies wird “Dependency Inversion Principle” genannt.

Dependency Inversion Principle

Robert C. Martin:

    • High-Level-Module: Sollten nicht von Low-Level-Modulen abhängen. Beide sollten von Abstraktionen abhängen.
    • Abstraktionen: Sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.

SOLID Principles

Das “Dependency Inversion Principle” ist Teil der SOLID Prinzipien

    • S-ingle Responsibility Principle (SRP)
    • O-pen/Closed Principle (OCP)
    • L-iskov Substitution Principle (LSP)
    • I-nterface Segregation Principle (ISP)
    • => D-ependency Inversion Principle (DIP) <=