** 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.
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.
-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 ...
Créez simplement une nouvelle fenêtre, mais écrivez un exemple de code.
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.
Interface limitée
FacadePrinter.kt
package facade
class FacadePrinter {
private val printer = Printer()
fun printOut(num: Int) {
printer.printOut(num)
}
}
Client.kt
package facade
class Client {
init {
val printer = FacadePrinter()
printer.printOut(15)
//Aucune autre méthode disponible
// printer.startUp()
// pritner.shutDown()
}
}
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