Description du mode d'apparence
Remarque: Le mode d'apparence est une interface d'interface de haut niveau fournie par un sous-système complexe ou une composition de programme, ce qui facilite l'accès au programme ou à l'interface système sous-jacent à l'aide du client;
Le mode d'apparence est un modèle que nous rencontrons souvent. Les fonctions que nous impliquons souvent peuvent impliquer plusieurs sous-interfaces ou sous-systèmes, tandis qu'une certaine fonction de la nôtre ne peut exiger que cela soit encapsulé dans l'ordre d'un ou plusieurs sous-interfaces multiples. Si la fonction commerciale correspond directement au sous-interface ou au sous-système, le développeur peut avoir besoin d'avoir une compréhension considérable du contenu interne; Vous devrez peut-être comprendre comment se déroule le processus métier, quelle est sa commande, etc. Cela oblige les développeurs à comprendre l'entreprise et à rendre la programmation client assez compliquée;
S'il y a une couche ou une classe ici qui fournit spécifiquement la méthode que nous voulons utiliser pour l'encapsuler, la fonction client n'a besoin qu'interagir avec cette classe de couche intermédiaire, et les méthodes correspondantes de la classe de couche intermédiaire ont des développeurs connexes qui comprennent l'encapsulation de l'organisation commerciale, alors le programme deviendra très simple. Le programmeur n'a besoin que de savoir quelle méthode est requise pour sa fonction et n'a pas besoin de connaître la logique interne.
Cette classe de couche moyenne est ce que nous appelons la classe d'apparence, qui est l'idée de modèle d'apparence.
Exemple de scène:
1>. Par exemple, l'interrupteur principal, cet interrupteur principal peut contrôler une lumière sur la porte de la maison, quelques lumières dans le couloir et contrôler l'alimentation de la télévision à domicile, le réfrigérateur, etc. Si vous appuyez sur "sur", sur lequel on aura de l'électricité, et même émettre directement la transmission de la lumière et de la chaleur. Vous n'avez pas à savoir comment le bouton du commutateur principal sort ou comment il est enfoncé vers les appareils électriques pertinents. Quoi qu'il en soit, vous l'appellerez directement.
Ces lumières, téléviseurs, etc. sont les interfaces et les petits systèmes que nous voulons utiliser; Ce commutateur principal est notre apparence et nous pouvons le faire fonctionner directement.
2>. C’est une bonne chose qu’une entreprise ait plusieurs départements fonctionnels. Lorsque le patron a besoin de la mise en œuvre de divers aspects du travail un par un, il ira au département et demandera à un employé comment se passe cette chose. S'il demande la bonne personne, il peut répondre directement au patron. Si cette personne est responsable, il dira également au patron: "Oh, qui est responsable de cette affaire, et le patron doit courir pour demander à la personne, c'est tellement gênant."
Si chaque service fonctionnel a un superviseur, le patron peut simplement y aller et découvrir la situation. Le patron n'a pas à se soucier de la façon dont la personne responsable le sait. Il veut juste connaître la situation des 1, 2 et 3 choses et suivre les progrès.
Code source d'instance
Implémentez maintenant le code source en fonction du deuxième scénario d'instance:
1. Plusieurs fonctions départementales:
Département 1 (Département des affaires):
La copie de code est la suivante:
fonction commercialdept () {
this.Manager = 'Manager Chen'; // les gens en charge
}
BusinessDept.prototype = {
Mois de mois: fonction () {
Console.log (this.manager + 'Say: Les ventes de ce mois-ci sont xxx');
},
NextPlan: fonction () {
Console.log (this.manager + 'Say: Le plan suivant est comme ça, xxxx');
}
}
Département 2 (Département de R&D):
La copie de code est la suivante:
fonction rddept () {
this.Manager = 'Manager Huang';
}
Rddept.prototype = {
Progress: fonction () {
Console.log (this.manager + 'Say: La situation actuelle du projet et les progrès sont comme ceci xxx');
},
deptplan: function () {
Console.log (this.manager + 'Say: Le prochain plan de département est comme ceci xxx');
}
}
Ce qui précède sont les questions que les superviseurs de chaque département doivent répondre au patron;
Ensuite, établissez la catégorie d'apparence pour organiser les questions que votre patron souhaite poser;
La copie de code est la suivante:
Fonde FACADE () {
this.business = new BusinessDept ();
this.rddept = new rddept ();
}
Fade.prototype = {
Département: fonction () {
this.business.monthsales (); // Le directeur des ventes dira d'abord;
this.rddept.progress ();
},
deptplan: function () {
this.business.nextplan (); // Signaler le plan suivant;
this.rddept.deptPlan ();
}
}
Ensuite, le patron a appelé les deux managers devant lui et a commencé à poser des questions:
La copie de code est la suivante:
Var FACADE = NOUVEAU FACADE ();
Console.log («Boss a demandé: Maintenant, introduisez la situation de votre département?»);
FACADE.DEPTUTUTION ();
Console.log («Boss a demandé: quels sont les plans ensuite?»);
FACADE.DEPTPLAN ();
Autres instructions
L'utilisation du mode d'apparence peut faire des interfaces ou des classes découplées, afin qu'il n'y ait pas besoin de dépendance entre les classes. Lorsqu'il n'est pas nécessaire à utiliser, il inclure B, ou B doit inclure A. Cela viole le principe de la modification de clôture. L'utilisation de classe de classe de couche intermédiaire peut rendre les appels d'interface simples, et l'utilisation des sous-interfaces ou des appels d'objets de sous-système devient plus libre et organisé.
Le mode d'apparence apparaît souvent dans notre programmation et le mode d'apparence est souvent utilisé dans la définition de modèle du système d'architecture. Notre système doit utiliser des services d'interface tiers et ajouter souvent une couche d'apparence pour organiser les interfaces commerciales disponibles;