Heim  >  Artikel  >  Java  >  2020 Neue Java-Interviewfragen – Designmuster

2020 Neue Java-Interviewfragen – Designmuster

王林
王林nach vorne
2020-06-22 17:19:302153Durchsuche

2020 Neue Java-Interviewfragen – Designmuster

Was ist der Unterschied zwischen einer einfachen Fabrik und einer abstrakten Fabrik?

(Verwandte Empfehlungen: Java-Interviewfragen)

Einfacher Werksmodus:

Dieser Modus selbst ist sehr einfach Und es wird verwendet, wenn das Geschäft relativ einfach ist. Wird im Allgemeinen für kleine Projekte oder Situationen verwendet, in denen bestimmte Produkte selten erweitert werden (damit die Factory-Klasse nicht häufig geändert werden muss).

Es besteht aus drei Rollen:

  • Fabrikrolle: Dies ist der Kern dieses Modells und enthält bestimmte Geschäftslogik und Beurteilungslogik. Nach unterschiedlicher Logik werden bestimmte Fabrikprodukte generiert. Wie zum Beispiel die Driver-Klasse im Beispiel.

  • Abstrakte Produktrolle: Dies ist im Allgemeinen die übergeordnete Klasse, die von einem bestimmten Produkt oder der implementierten Schnittstelle geerbt wird. Implementiert durch Schnittstelle oder abstrakte Klasse. Wie zum Beispiel die Car-Schnittstelle im Beispiel.

  • Spezifische Produktrolle: Das von der Factory-Klasse erstellte Objekt ist eine Instanz dieser Rolle. Es wird durch eine konkrete Klasse in Java implementiert, wie beispielsweise die Benz- und BMW-Klassen im Beispiel.

(empfohlenes Lernen: Java-Einführungsprogramm )

um Klassendiagramme zu verwenden, um die Beziehung zwischen ihnen klar darzustellen:

2020 Neue Java-Interviewfragen – Designmuster

Abstraktes Fabrikmuster:

Lassen Sie uns zunächst verstehen, was eine Produktfamilie ist: Sie befindet sich in verschiedenen hierarchischen Produktstrukturen und hat verwandte Funktionen. Eine Familie vernetzter Produkte.

2020 Neue Java-Interviewfragen – Designmuster

BmwCar und BenzCar im Bild sind zwei Produktbäume (Produkthierarchie); und BenzSportsCar und BmwSportsCar wie im Bild gezeigt sind eine Produktfamilie. Sie können alle der Sportwagenfamilie zugeordnet werden, sodass die Funktionen verwandt sind. Ebenso sind BmwBussinessCar und BenzBusinessCar eine Produktfamilie.

Man kann sagen, dass der Unterschied zum Factory-Methodenmuster in der Komplexität der Objekterstellung liegt. Darüber hinaus ist das abstrakte Fabrikmuster das abstrakteste und allgemeinste der drei. Der Zweck des abstrakten Factory-Musters besteht darin, dem Client eine Schnittstelle bereitzustellen, mit der Produktobjekte in mehreren Produktfamilien erstellt werden können.

Und die folgenden Bedingungen müssen erfüllt sein, um das abstrakte Fabrikmuster zu verwenden:

1 Es gibt mehrere Produktfamilien im System und das System kann nur eine verwenden der Produktfamilien gleichzeitig

2. Produkte, die zur gleichen Produktfamilie gehören, sollten entsprechend verwendet werden.

(Empfohlenes Video-Tutorial: Java-Video-Tutorial )

Werfen wir einen Blick auf die verschiedenen Rollen des abstrakten Factory-Musters (das gleiche wie die Factory-Methode). ):

  • Abstrakte Factory-Rolle: Dies ist der Kern des Factory-Methodenmusters und hat nichts mit der Anwendung zu tun. Es handelt sich um die Schnittstelle, die eine bestimmte Factory-Rolle implementieren muss, oder um die übergeordnete Klasse, die geerbt werden muss. In Java wird es durch abstrakte Klassen oder Schnittstellen implementiert.

  • Spezifische Factory-Rolle: Sie enthält Code, der sich auf eine bestimmte Geschäftslogik bezieht. Wird von einer Anwendung aufgerufen, um ein Objekt zu erstellen, das einem bestimmten Produkt entspricht. In Java wird es durch konkrete Klassen implementiert.

  • Abstrakte Produktrolle: Es handelt sich um die übergeordnete Klasse, die von einem bestimmten Produkt oder der implementierten Schnittstelle geerbt wird. In Java müssen im Allgemeinen abstrakte Klassen oder Schnittstellen implementiert werden.

  • Spezifische Produktrolle: Das von der spezifischen Factory-Rolle erstellte Objekt ist eine Instanz dieser Rolle. Es wird durch bestimmte Klassen in Java implementiert.

Das obige ist der detaillierte Inhalt von2020 Neue Java-Interviewfragen – Designmuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen