[GO] [Gang of Four] Apprentissage des modèles de conception - Façade

Apparence de la façade

** Table des matières ** Lorsqu'un client utilise un sous-système, il s'agit d'un modèle qui combine des interfaces compliquées uniquement dans les interfaces minimales requises. Si vous ne souhaitez pas personnaliser le sous-système, rendez-le plus facile à utiliser en vous concentrant uniquement sur l'interface à laquelle le motif de façade est appliqué.

Le but est d'affaiblir la connexion entre le client et le sous-système. Il est facile de changer de sous-système car le degré de couplage est faible.

Objectif

Donnez une interface unifiée à plusieurs interfaces existantes dans le sous-système. Le modèle Facade définit une interface de haut niveau qui facilite l'utilisation de sous-systèmes.

Composant

-Une classe qui définit l'interface minimale requise pour que le client Facade utilise le sous-système. -Classes dans les sous-systèmes Sous-systèmes à utiliser

Je me demande pourquoi seules les classes du sous-système parmi les composants ne sont pas correctement nommées ...

la mise en oeuvre

Créez simplement une nouvelle fenêtre, mais écrivez un exemple de code.

Classes dans les sous-systèmes Sous-systèmes utilisés

Diverses interfaces de classe d'imprimante

Printer.kt


package facade

class Printer {
    fun startUp() { print("Commencez") }
    fun shutDown() { print("Fin") }
    fun setToner(color: String) { print("Toner${color}Réglez sur la couleur.") }
    fun addPaper(num: Int) { print("Papier${num}J'en ajouterai un.") }
    fun login(name: String) { print("Utilisateur${name}S'est connecté.") }
    fun printOut(num: Int) { print("${num}Imprimez une feuille.") }
}

Étant donné que le client n'a besoin d'imprimer que pour faire fonctionner l'imprimante, préparez une fenêtre pour cela.

Une classe qui définit l'interface minimale requise pour que le client Facade utilise le sous-système

Interface limitée

FacadePrinter.kt


package facade

class FacadePrinter {
    private val printer = Printer()

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

client

Client.kt


package facade

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

        //Aucune autre méthode disponible
        // printer.startUp()
        // pritner.shutDown()
    }
}

Résultat de sortie

Le résultat n'est pas si grand

[output]
Imprimez 15 feuilles.

D'une manière ou d'une autre, je sens que ma perception est fausse. Veuillez l'indiquer dans les commentaires.

Recommended Posts

[Gang of Four] Apprentissage des modèles de conception - Façade
[Gang of Four] Apprentissage des modèles de conception
[Gang of Four] Apprentissage des modèles de conception --Singleton
[Gang of Four] Apprentissage des modèles de conception - Visiteur
[Gang of Four] Apprentissage des modèles de conception - Médiateur
[Gang of Four] Apprentissage des modèles de conception - Itérateur
[Gang of Four] Apprentissage des modèles de conception - Composite
[Gang of Four] Apprentissage des modèles de conception - Prototype
[Gang of Four] Apprentissage des modèles de conception --Mémento
[Gang of Four] Apprentissage des modèles de conception - État
[Gang of Four] Apprentissage des modèles de conception - Interprétation
[Gang of Four] Apprentissage des modèles de conception - Constructeur
[Gang of Four] Apprentissage des modèles de conception - Pont
[Gang of Four] Apprentissage des modèles de conception - Proxy
[Gang of Four] Apprentissage des modèles de conception - Stratégie
[Gang of Four] Apprentissage des modèles de conception - Adaptateur
[Gang of Four] Apprentissage des modèles de conception --Observer
[Gang of Four] Apprentissage des modèles de conception - Commande
[Gang of Four] Apprentissage des modèles de conception - Poids du vol
[Gang of Four] Apprentissage des modèles de conception - Usine abstraite
[Gang of Four] Apprentissage des modèles de conception - Méthode d'usine
[Gang of Four] Apprentissage des modèles de conception - Chaîne de responsabilité
[Gang of Four] Apprentissage des modèles de conception - Méthode du modèle
Modèle de conception #Facade
Modèles Gang of Four (GoF) en Python
Apprenez le modèle de conception "Façade" avec Python
Modèle de conception #Builder
Modèle de conception #Adapter
Apprentissage de la reconnaissance de formes en vidéo Partie 1 Champ de reconnaissance de formes
Modèle de conception #Observer
Modèle de conception #Strategy
Modèle de conception #Singleton
Modèle de conception #Proxy
J'ai étudié les modèles de conception (mémo personnel) Partie 6 (modèle de chaîne de responsabilité, modèle de façade, modèle de médiateur)
Apprenez le modèle de conception «Chaîne de responsabilité» en Python
Modèle de façade en Java
Design Pattern #Factory, méthode
Deep learning 1 Pratique du deep learning
Design Pattern #Template, méthode
L'histoire selon laquelle les modèles de conception du GoF ne sont rien de plus qu'une «introduction de couches abstraites»