Erstens kann die Erstellung verwandter Objekte von Klassen tatsächlich durch neue erfolgen. Wenn das Projekt jedoch zu groß ist und das Objekt zu viele Abhängigkeiten hat, müssen wir beim Erstellen des Objekts viel neuen Code schreiben, und es kann eine Methode geben, das Objekt direkt aufzurufen, nachdem man vergessen hat, einige abhängige Objekte zu instanziieren, und dann gibt es eine Nullpointer-Ausnahme. Wenn dieser Prozess der Containerverwaltung überlassen wird, müssen wir uns keine Sorgen um Objektinstanziierung machen, und es gibt keine Nullpointer-Ausnahmen bei der Verwendung abhängiger Objekte zu irgendeinem Zeitpunkt, und der Code kann vereinfacht werden. Zweitens können die im Methodenaufruf verwendeten Attribute Instanzattribute sein; wenn sie alle statisch definiert sind, wie sieht es dann mit den in der Methode verwendeten Daten aus? Wenn man alle Methoden als statisch definiert, müssen auch die Eigenschaften der in der Methode referenzierten Klasse als statisch definiert sein, was den globalen Attributen entspricht, sodass es definitiv Probleme mit der Datensynchronisation geben wird. Tatsächlich ist es sinnvoll, über die Programmierprinzipien im Designmuster nachzudenken, die alle darauf abzielen, hochlesbaren, leicht zu wartenden und skalierbaren Code zu erstellen. Beste Wünsche!
Es ist praktisch, Software in Form von Bausteinen zusammenzustellen, und es ist praktisch, Software mit hoher Kohäsion und niedriger Kopplung zu erstellen (indem Abhängigkeiten aus dem Code extrahiert werden) Kollaborative Entwicklung, Code-Debugging (keine Notwendigkeit, Komponenten zusammenzuintegrieren, sie können separat getestet werden), und der erstellte Code ist robuster.
Die Projektentwicklung legt großen Wert auf hohe Kohäsion und niedrige Kopplung, und die Verwendung von Dependency Injection kann die Nutzung des neuen Schlüsselwortbereichs zur Erstellung von Objekten vermeiden, wodurch die Kopplung zwischen Klassen verringert wird
|