[GO] [Viererbande] Designmuster lernen - Fassade

Fassaden-Aussehen

** Inhaltsverzeichnis ** Wenn ein Client ein Subsystem verwendet, ist dies ein Muster, das komplizierte Schnittstellen nur zu den minimal erforderlichen Schnittstellen zusammenfasst. Wenn Sie das Subsystem nicht anpassen möchten, vereinfachen Sie die Verwendung, indem Sie sich nur auf die Schnittstelle konzentrieren, auf die das Fassadenmuster angewendet wird.

Der Punkt ist, die Verbindung zwischen dem Client und dem Subsystem zu schwächen. Das Subsystem kann leicht gewechselt werden, da der Kopplungsgrad schwach ist.

Zweck

Geben Sie eine einheitliche Schnittstelle für mehrere im Subsystem vorhandene Schnittstellen. Das Fassadenmuster definiert eine übergeordnete Schnittstelle, die die Verwendung von Subsystemen erleichtert.

Komponente

Ich frage mich, warum nur die Klassen im Subsystem unter den Komponenten nicht richtig benannt sind ...

Implementierung

Erstellen Sie einfach ein neues Fenster, aber schreiben Sie Beispielcode.

Klassen in Subsystemen Verwendete Subsysteme

Verschiedene Druckerklassenschnittstellen

Printer.kt


package facade

class Printer {
    fun startUp() { print("Anlaufen") }
    fun shutDown() { print("Ende") }
    fun setToner(color: String) { print("Toner${color}Auf Farbe einstellen.") }
    fun addPaper(num: Int) { print("Papier${num}Ich werde einen hinzufügen.") }
    fun login(name: String) { print("Nutzer${name}Hat sich eingeloggt.") }
    fun printOut(num: Int) { print("${num}Drucken Sie ein Blatt.") }
}

Da der Client den Drucker nur zum Drucken bedienen muss, bereiten wir ein Fenster dafür vor.

Eine Klasse, die die Mindestschnittstelle definiert, die der Facade-Client zur Verwendung des Subsystems benötigt

Begrenzte Schnittstelle

FacadePrinter.kt


package facade

class FacadePrinter {
    private val printer = Printer()

    fun printOut(num: Int) {
        printer.printOut(num)
    }
}

Klient

Client.kt


package facade

class Client {
    init {
        val printer = FacadePrinter()
        printer.printOut(15)

        //Keine andere Methode verfügbar
        // printer.startUp()
        // pritner.shutDown()
    }
}

Ausgabeergebnis

Das Ergebnis ist nicht so groß

[output]
Drucken Sie 15 Blatt.

Irgendwie habe ich das Gefühl, dass meine Wahrnehmung falsch ist. Bitte weisen Sie in den Kommentaren darauf hin.

Recommended Posts

[Viererbande] Designmuster lernen - Fassade
[Viererbande] Designmuster lernen
[Viererbande] Design Pattern Learning - Singleton
[Viererbande] Designmuster lernen --Besucher
[Viererbande] Design Pattern Learning - Vermittler
[Viererbande] Designmusterlernen --Iterator
[Viererbande] Design Pattern Learning - Composite
[Viererbande] Designmuster lernen - Prototyp
[Viererbande] Designmuster lernen - Andenken
[Viererbande] Designmuster lernen - Staat
[Vierergruppe] Design Pattern Learning - Interpreter
[Viererbande] Design Pattern Learning - Builder
[Viererbande] Designmuster lernen - Brücke
[Viererbande] Designmuster lernen --Proxy
[Viererbande] Design Pattern Learning - Strategie
[Viererbande] Designmuster lernen --Adapter
[Viererbande] Design Pattern Learning - Beobachter
[Viererbande] Designmuster lernen - Befehl
[Viererbande] Designmuster lernen - Fluggewicht
[Viererbande] Designmusterlernen - Abstract Factory
[Viererbande] Designmuster lernen - Fabrikmethode
[Viererbande] Designmuster lernen - Kette der Verantwortung
[Viererbande] Design Pattern Learning - Template-Methode
Entwurfsmuster #Facade
Gang of Four (GoF) -Muster in Python
Lernen Sie das Designmuster "Facade" mit Python
Entwurfsmuster #Builder
Entwurfsmuster #Adapter
Lernen der Mustererkennung im Video Teil 1 Bereich der Mustererkennung
Entwurfsmuster #Observer
Entwurfsmuster #Strategie
Entwurfsmuster #Singleton
Entwurfsmuster #Proxy
Ich habe über Designmuster (persönliches Memo) Teil 6 (Muster der Verantwortungskette, Fassadenmuster, Vermittlermuster) studiert.
Lernen Sie das Entwurfsmuster "Chain of Responsibility" in Python
Fassadenmuster in Java
Entwurfsmuster #Factory-Methode
Deep Learning 1 Übung des Deep Learning
Entwurfsmuster # Template-Methode
Die Geschichte, dass GoF-Designmuster nichts anderes sind als "Einführung abstrakter Ebenen"