Heim > Backend-Entwicklung > C++ > Wie kann ich übermäßige Abhängigkeiten in einer parametrisierten Factory-Methode effektiv verwalten?

Wie kann ich übermäßige Abhängigkeiten in einer parametrisierten Factory-Methode effektiv verwalten?

Susan Sarandon
Freigeben: 2025-01-21 01:32:09
Original
867 Leute haben es durchsucht

How Can I Effectively Manage Excessive Dependencies in a Parameterized Factory Method?

Factory-Methode mit Abhängigkeitsinjektion und Kontrollinversion

Sie sind mit Factory-Methoden und dem Dependency-Injection-Muster (DI) vertraut, benötigen aber Anleitung für den speziellen Fall einer großen Anzahl von Abhängigkeiten in einer parametrisierten Factory-Methode.

Problem: Übermäßige Abhängigkeit von parametrisierten Fabriken

In Ihrer Factory-Klasse benötigt der Konstruktor sechs Abhängigkeiten, und jede von der Factory erstellte Autoinstanz verfügt über einen anderen Satz von Abhängigkeiten. Dies erschwert die Verwaltung der Fabrik und führt zu CreateCar-Anweisungen in switch case-Methoden.

Alternative Methoden

Sie haben zwei Alternativen vorgeschlagen: die Autoinstanz direkt in den Fabrikkonstruktor einzufügen oder einen Service-Locator zu verwenden. Allerdings haben diese Lösungen jeweils ihre Nachteile. Das Einfügen von Autoinstanzen verstößt gegen die Prinzipien des Fabrikdesigns, und von der Verwendung von Service-Locators wird generell abgeraten.

Lösung: Strategiemuster für die Abhängigkeitsinjektion

Anstatt switch case-Anweisungen in Fabriken zu verwenden, sollten Sie die Übernahme des Strategiemusters für die Abhängigkeitsinjektion in Betracht ziehen. Mit diesem Muster können Sie mehrere Fabrikimplementierungen erstellen, die jeweils für die Erstellung eines bestimmten Fahrzeugtyps bestimmt sind.

Umsetzung:

  1. Schnittstelle definieren: Schnittstellen für ICarFactory und ICarStrategy einführen. ICarFactory stellt eine Fabrik dar, die zum Erstellen von Autoinstanzen verwendet wird, während ICarStrategy eine Sammlung von Fabriken darstellt.
  2. Fabrik erstellen: Implementieren Sie konkrete Fabrikklassen für jeden Fahrzeugtyp, z. B. Car1Factory und Car2Factory. Diese Fabriken fügen über ihre Konstruktoren notwendige Abhängigkeiten ein.
  3. Implementierungsstrategie: Erstellen Sie eine CarStrategy-Klasse, die ICarStrategy implementiert und ein Array von ICarFactory-Instanzen enthält. Die Methode CarStrategy in CreateCar durchläuft die Fabriken, um eine Fabrik zu finden, die den gewünschten Fahrzeugtyp herstellen kann.
  4. Verwendung: Fügen Sie CarStrategy Instanzen in Ihren Code ein. Sie können dann die Methode CreateCar verwenden, um die Autoinstanz zu instanziieren, ohne die Abhängigkeiten direkt anzugeben.

Vorteile des Strategiemodus:

  • Eliminieren Sie switch caseAnweisungen in Factory-Methoden
  • Ermöglicht das einfache Hinzufügen neuer Autofabriken
  • Erleichtert DI-Abhängigkeiten für jede Fabrik
  • Zentraler Standort zur Unterstützung der Werksregistrierung

Das obige ist der detaillierte Inhalt vonWie kann ich übermäßige Abhängigkeiten in einer parametrisierten Factory-Methode effektiv verwalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage