Wir haben einen neuen Artikel verfasst. Es folgt eine Zusammenfassung: Polymorphismus ist der wichtigste Mechanismus, um wartbaren objektorientierten Code zu erstellen. Der Client-Code verwendet anderen Code über eine abstrakte Schnittstelle, und solange wir den Verhaltenskontrakt nicht brechen, können wir die Implementierung hinter dieser Schnittstelle nach Belieben ändern. Echte Wartbarkeit erreichen Sie nur, wenn der Client-Code über eine abstrakte Schnittstelle von anderem Code abhängig ist und von nichts anderem . Leider bricht die Erstellungslogik - von Natur aus - diese Regel . Wenn Sie eine Instanz erstellen, müssen Sie irgendwann den Konstruktor der eigentlichen implementierenden Klasse aufrufen. Dadurch entsteht eine Abhängigkeit, die Sie daran hindert, die Implementierung transparent zu ändern, wodurch die Vorteile der Polymorphie zunichte gemacht werden. Die Lösung für das Problem der Erzeugungslogik besteht darin, die Abstraktion zu schützen, indem die Erzeugungslogik vor dem Client-Code verborgen wird . Dependency Injection ist die ideale Lösung, denn in diesem Fall verwendet der Client die Erzeugungslogik überhaupt nicht. Allerdings muss der injizierende Code seinerseits reale Instanzen erzeugen.
Dieser Artikel ist der erste einer dreiteiligen Serie: Dieser Artikel wird veranschaulichen, wie sich das Erstellungsproblem manifestiert, der zweite wird sich mit einigen fortgeschrittenen Implementierungen von Erstellungscode befassen und der dritte mit Dependency Injection.
Verfasst von
Serge Beaumont
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



