Maison >développement back-end >tutoriel php >Les 23 modèles de conception de Dahua PHP, une énergie élevée et aucun point de pipi tout au long du processus
1. Modèle de conception créationnel
1. USINE—Si vous voulez chasser une fille, vous devez lui offrir un repas. Les ailes de poulet McDonald's et les ailes de poulet KFC sont deux choses que les filles aiment manger. Bien que les goûts soient différents, peu importe. Si vous emmenez votre petite amie chez McDonald's ou KFC, dites simplement au serveur : « Quatre ailes de poulet ». McDonald's et KFC sont des usines qui produisent des ailes de poulet
Modèle d'usine : la classe client et la classe usine sont séparées. Chaque fois qu’un consommateur a besoin d’un certain produit, il lui suffit de le demander à l’usine. Les consommateurs peuvent accepter de nouveaux produits sans modification. L'inconvénient est que lorsque le produit est modifié, la classe d'usine doit également être modifiée en conséquence. Tels que : comment créer et comment le fournir au client.
2. CONSTRUCTEUR – Ce que MM aime le plus entendre, c'est la phrase "Je t'aime". Lorsque vous rencontrez MM de différents endroits, vous devriez pouvoir lui dire cela dans leur dialecte. J'ai un multilingue. Le traducteur a un. bouton pour chaque langue. Quand je vois une fille, j'ai juste besoin d'appuyer sur le bouton correspondant, et elle pourra dire "Je t'aime" dans la langue correspondante. Les filles étrangères peuvent aussi le faire facilement. C'est mon "Je". je t'aime" constructeur. (Cela doit être plus facile à vendre que le traducteur utilisé par l'armée américaine en Irak)
Mode construction : Séparez la représentation interne du produit du processus de génération du produit, de sorte qu'un processus de construction génère des objets produits avec différentes représentations internes. Le mode de construction permet de modifier indépendamment l'apparence interne du produit et le client n'a pas besoin de connaître les détails de la composition interne du produit. Le mode Construction applique un processus de construction étape par étape.
3. MÉTHODE D'USINE – Invitez MM chez McDonald's pour un hamburger. Différents MM ont des goûts différents. C'est ennuyeux de se souvenir de chacun d'eux. J'utilise généralement le mode Méthode d'usine et j'emmène MM au serveur. burger", demandez simplement à la fille de dire directement au serveur quel type de burger vous voulez.
Modèle de méthode Factory : la classe d'usine principale n'est plus responsable de la création de tous les produits, mais laisse le travail de création spécifique aux sous-classes, devenant un rôle d'usine abstrait, uniquement responsable de fournir les interfaces que des classes d'usine spécifiques doivent implémenter. Sans toucher aux détails de la classe de produit qui doit être instanciée.
4. PROTOTYPE—Lorsque vous discutez avec une fille sur QQ, vous devez dire des mots affectueux. J'ai collecté beaucoup de mots d'amour dégoûtants. Si nécessaire, copiez-les simplement et mettez-les dans QQ. mots. (100 yuans la copie, vous le voulez)
Mode modèle original : Spécifiez le type d'objet à créer en donnant un objet prototype, puis créez plus d'objets du même type en copiant l'objet prototype. Le modèle de modèle d'origine permet l'ajout ou la réduction dynamique de catégories de produits. Les catégories de produits n'ont pas besoin d'avoir une structure hiérarchique prédéterminée. Le modèle de modèle d'origine convient à n'importe quelle structure hiérarchique. L'inconvénient est que chaque classe doit être équipée d'une méthode de clonage.
5. SINGLETON—J'ai 6 belles femmes. Leurs maris sont tous moi. Je suis le mari Sigleton dans notre famille. Tant qu'ils disent « mari », ils font tous référence à la même personne, c'est moi (juste). did C'est un rêve, comment une si bonne chose peut-elle arriver)
Mode Singleton : le mode Singleton garantit qu'une certaine classe n'a qu'une seule instance, et elle s'instancie et fournit cette
instance à l'ensemble du système. Le modèle singleton ne doit être utilisé que lorsqu’il existe une véritable exigence « d’instance unique ».
2. Modèle structurel
6. ADAPTATEUR—J'ai rencontré une belle femme nommée Sarah lors d'une fête chez un ami. Elle vient de Hong Kong, mais je ne parle pas cantonais et elle ne parle pas mandarin, alors j'ai dû. de me tourner vers mon ami Kent pour obtenir de l'aide. Maintenant, il sert d'adaptateur entre Sarah et moi, permettant à Sarah et moi de nous parler (je ne sais pas s'il me jouera des tours)
Adaptateur (Transformateur ) : Transformez l'interface d'une classe en ce que le client attend avec impatience. Une autre interface à attendre, afin que deux classes qui à l'origine ne pouvaient pas fonctionner ensemble en raison d'interfaces incompatibles puissent travailler ensemble. La classe d'adaptation peut renvoyer une instance appropriée au client en fonction des paramètres.
7. PONT—Lorsque vous rencontrez une fille le matin, dites bonjour ; lorsque vous rencontrez une fille le soir, dites bonsoir ; lorsque vous rencontrez une fille qui porte une nouvelle robe, dites que votre robe est si belle. tu rencontres une fille, tu dois lui dire bonsoir. Tes cheveux sont si beaux. Ne me posez pas de questions comme « Que dites-vous lorsque vous rencontrez votre petite amie avec une nouvelle coiffure le matin ? », utilisez simplement BRIDGE pour la combiner vous-même
Modèle de pont : dissocier l'abstraction de la mise en œuvre, pour que les deux puissent changer indépendamment, c'est-à-dire changer l'association forte entre eux en une association faible, c'est-à-dire utiliser une relation de combinaison/agrégation au lieu d'une relation d'héritage entre l'abstraction et l'implémentation d'un système logiciel, afin que les deux puissent changer indépendamment .
8. COMPOSITE—L'anniversaire de Marie est aujourd'hui. " C'est mon anniversaire et tu veux m'offrir un cadeau. " " Eh bien, d'accord, va au magasin et choisis-le toi-même. " " Ce t-shirt est joli, achète-le, cette jupe est jolie, achète-la, ceci. Le sac est plutôt bien aussi. " Achetez-le. " " Hé, j'ai acheté trois pièces. Je n'ai promis de vous offrir qu'un seul cadeau. " " Quoi, un T-shirt, une jupe et un sac, ils font un ensemble parfait. Mademoiselle, s'il vous plaît, enveloppez-les." ""...", MM utilisera le mode Composite, l'avez-vous maîtrisé ?
Mode composite : le mode composite organise les objets dans une structure arborescente, qui peut être utilisée pour décrire la relation entre le tout et ses parties. Le modèle de composition est un modèle qui traite des structures arborescentes d’objets. Le mode synthèse exprime la relation entre la partie et le tout à l’aide d’une structure arborescente. Le mode composition permet au client de traiter les objets composants individuels de la même manière que l'objet composite qui les compose.
9. DÉCORATEUR—Après la fête de Marie, c'est au tour de Sarly de fêter son anniversaire. Il vaut mieux ne pas lui demander de choisir elle-même, sinon les dépenses alimentaires de ce mois seront définitivement dépensées. au sommet de la montagne Huashan l'année dernière et j'ai écrit " Le meilleur cadeau est de t'aimer Fita. " Je suis allé à la boutique de cadeaux dans la rue et j'ai acheté un cadre photo (la fille qui vend les cadeaux est aussi très belle), puis j'ai demandé à Mike. , qui est designer d'art à côté, pour concevoir une belle boîte dans laquelle le mettre. „„, nous sommes tous des décorateurs, et en fin de compte, nous me décorons en tant que personne. Et vous, comprenez ?
Mode Décoration : Le mode Décoration étend les fonctionnalités des objets de manière transparente au client. C'est une alternative à l'héritage et offre plus de flexibilité que l'héritage. Ajoutez dynamiquement des fonctions à un objet, et ces fonctions peuvent être annulées dynamiquement. Ajout d'une très grande quantité de fonctionnalités résultant de permutations et de combinaisons de certaines fonctionnalités de base.
10. FAÇADE—J'ai un appareil photo Nikon professionnel et j'aime régler manuellement l'ouverture et l'obturateur par moi-même, afin que les photos prises soient professionnelles, mais MM ne comprend pas cela, même après avoir appris pendant un certain temps. longue durée. Heureusement, l'appareil photo dispose d'un mode de conception de façade. Si vous réglez l'appareil photo en mode automatique, il vous suffit de viser la cible et d'appuyer sur le déclencheur. Tout sera automatiquement ajusté par l'appareil photo, donc MM peut également utiliser cet appareil photo pour. prends des photos de moi.
Mode façade : La communication externe avec un sous-système doit être effectuée via un objet façade unifié. Le modèle Facade fournit une interface de haut niveau qui facilite l'utilisation des sous-systèmes. Chaque sous-système n'a qu'une seule classe de façade, et cette classe de façade n'a qu'une seule instance, ce qui signifie qu'il s'agit d'un modèle singleton. Mais l’ensemble du système peut avoir plusieurs classes de façade.
11. FLYWEIGHT : j'envoie des SMS à MM tous les jours et mes doigts sont épuisés. J'ai récemment acheté un nouveau téléphone portable. Je peux enregistrer certaines phrases couramment utilisées dans le téléphone. il suffit de le retirer et d'ajouter MM devant. Le nom peut être envoyé sans le taper mot par mot. La phrase partagée est Flyweight et le nom de MM est la fonctionnalité externe extraite, qui est utilisée en fonction du contexte.
Mode poids mouche : FLYWEIGHT fait référence au poids coq dans les matchs de boxe. Le mode Flyweight prend en charge efficacement un grand nombre d’objets à granularité fine de manière partagée. La clé du partage du modèle poids mouche est de faire la distinction entre les états intrinsèques et extrinsèques. L'état intrinsèque est stocké à l'intérieur de la masselotte et ne changera pas avec les changements de l'environnement. L'état extérieur change avec les changements de l'environnement. Les états extrinsèques ne peuvent pas affecter les états intrinsèques, ils sont indépendants les uns des autres. Distinguez l’état qui peut être partagé de l’état qui ne peut pas être partagé à partir des classes normales et supprimez l’état qui ne peut pas être partagé de la classe. Le client ne peut pas créer directement des objets partagés, mais doit utiliser un objet d'usine pour créer des objets partagés. Le mode Flyweight réduit considérablement le nombre d’objets en mémoire.
12. PROXY - Lorsque vous discutez avec une fille en ligne, cela commence toujours par "Salut, bonjour", "D'où venez-vous ?", "Quelle est votre taille ?" Que diriez-vous d'être mon proxy, et de configurer une réponse automatique lors de la réception de ces mots, puis de m'informer de la réponse lors de la réception d'autres mots, que diriez-vous de ça, cool.
Mode proxy : le mode proxy fournit un objet proxy pour un certain objet, et l'objet proxy contrôle la référence à l'objet source. L'agence, c'est lorsqu'une personne ou une institution agit au nom d'une autre personne ou institution. Dans certains cas, le client ne veut pas ou ne peut pas référencer directement un objet, et l'objet proxy peut directement servir d'intermédiaire entre le client et l'objet cible. Le client ne peut pas faire la différence entre un objet de rubrique proxy et un objet de rubrique réel. Le mode proxy ne connaît pas le véritable objet proxy, mais contient uniquement une interface de l'objet proxy. Pour le moment, l'objet proxy ne peut pas créer l'objet proxy. L'objet proxy doit être créé et transmis par d'autres rôles dans le système.
Trois modèles comportementaux
13. CHAÎNE DE RESPONSABILITÉ—Je suis allée au cours d'anglais le soir et je me suis assise au dernier rang juste pour m'amuser, il y avait plusieurs belles filles assises devant moi. . Trouvez un morceau de papier et écrivez "Salut, peux-tu être ma petite amie ? Si tu ne veux pas, s'il te plaît, transmets-le." Les notes ont été transmises les unes après les autres. note au professeur. J'ai entendu dire que vous êtes une vieille fille, courez !
Modèle de chaîne de responsabilité : Dans le modèle de chaîne de responsabilité, de nombreux objets sont reliés
par la référence de chaque objet à sa famille subordonnée pour former une chaîne. La requête est transmise dans la chaîne jusqu'à ce qu'un objet de la chaîne décide de traiter la requête. Le client ne sait pas quel objet de la chaîne gère finalement la demande, et le système peut réorganiser dynamiquement la chaîne et attribuer des responsabilités sans affecter le client. Le sous-traitant a deux choix : accepter la responsabilité ou transférer la responsabilité à la partie suivante. Une demande ne peut finalement être acceptée par aucun objet récepteur.
14. COMMANDE—J'ai une fille dont la famille est très stricte et nous ne pouvons pas nous rencontrer, elle doit donc compter sur son frère pour envoyer des messages entre nous. Si elle a des instructions à me donner, je lui écris simplement. un mot à son frère. Apportez-le-moi. Non, son frère a envoyé une autre COMMANDE pour le remercier, je lui ai offert un bol de nouilles diverses. De façon inattendue, il a dit : « J'ai envoyé des COMMANDES aux
petits amis de ma sœur en même temps, et tu es le plus jeune. Tu es tellement en colère que tu m'as invité à manger des nouilles. »,
Mode commande : Le mode commande encapsule une requête ou une opération dans un objet. Le modèle de commande sépare la responsabilité de l'émission des commandes et la responsabilité de l'exécution des commandes et les délègue à différents objets. Le mode commande permet à la partie requérante d'être indépendante de la partie émettrice, de sorte que la partie requérante n'a pas besoin de connaître l'interface de la partie recevant la demande, encore moins comment la demande est reçue, et si, quand et comment l'opération est effectuée. est exécuté de. Le système prend en charge l'annulation des commandes.
15. INTERPRÈTE—J'ai un "Vrai livre pour draguer les filles", qui contient diverses stratégies pour draguer les filles, comme les étapes à suivre pour manger de la nourriture occidentale, comment aller au cinéma, etc. Quand sortir avec une fille , vous n'avez besoin de faire qu'un seul interprète, suivez simplement le script ci-dessus et exécutez-le.
Mode interprète : Étant donné une langue, le mode interprète peut définir une représentation de sa grammaire et fournir en même temps un interprète. Les clients peuvent utiliser cet interprète pour interpréter des phrases dans cette langue. Le modèle Interpreter décrit comment interpréter ces instructions à l'aide d'une conception de modèle, étant donné une grammaire simple. Le langage mentionné dans le modèle d'interpréteur fait référence à toute combinaison que n'importe quel objet interpréteur peut interpréter. En mode interprète, il est nécessaire de définir une structure hiérarchique de classes de commandes qui représentent la grammaire, c'est-à-dire une série de règles de combinaison. Chaque objet de commande possède une méthode d'interprétation, qui représente l'interprétation de l'objet de commande. Toute permutation et combinaison d'objets dans une hiérarchie d'objets de commande est un langage.
16. ITERATOR—Je suis tombé amoureux de Mary et je lui ai proposé quoi qu'il arrive.
Mary : "Si tu veux que je t'épouse, tu dois accepter mes conditions."
Moi : "J'accepterai toutes les conditions, dis-le-moi
Mary : "Je le suis." attirée par ce diamant d'un carat »
Moi : « Je vais l'acheter, je vais l'acheter, y en a-t-il encore ? »
Mary : « Je suis intéressée par cette villa au bord du lac »
Moi : « Je vais l'acheter, je l'achète, il y en a encore ? »
Mary : « Je suis attirée par cette voiture de sport Ferrari »
Ma tête bourdonnait, je m'assis sur la chaise et serrai les dents : "Je vais l'acheter, je vais l'acheter, y en a-t-il d'autres ?"
„„
Sous-modèle itératif : le sous-modèle itératif permet un accès séquentiel aux éléments d'une collection sans exposer la représentation interne de la collection. L'agrégat formé de plusieurs objets réunis est appelé une agrégation. Un objet d'agrégation est un objet conteneur qui peut contenir un groupe d'objets. Le sous-modèle d'itération encapsule la logique d'itération dans un sous-objet distinct, distinct de la collection elle-même. Le sous-modèle itératif simplifie l'interface d'agrégation. Chaque objet agrégé peut avoir un ou plusieurs sous-objets itérateur, et le statut d'itération de chaque itérateur peut être indépendant les uns des autres. L'algorithme itératif peut varier indépendamment du rôle d'agrégation.
17. MÉDIATEUR—Quatre filles jouaient au mahjong et elles n'arrivaient pas à savoir combien d'argent elles devaient se donner. Heureusement, j'étais là à ce moment-là et j'ai calculé l'argent en fonction de leurs numéros de jetons respectifs. ceux qui ont gagné de l'argent me l'ont pris. Ceux qui ont perdu de l'argent m'ont également payé, et tout allait bien. J'ai obtenu les numéros de téléphone de quatre filles.
Modèle Médiateur : Le modèle Médiateur encapsule la manière dont une série d'objets interagissent afin que ces objets n'aient pas à interagir évidemment les uns avec les autres. Cela leur permet d'être faiblement couplés. Lorsque l’interaction entre certains objets change, cela n’affectera pas immédiatement l’interaction entre d’autres objets. Assurez-vous que ces effets peuvent être modifiés indépendamment les uns des autres. Le modèle Mediator convertit les interactions plusieurs-à-plusieurs en interactions un-à-plusieurs. Le modèle médiateur fait abstraction du comportement et de la collaboration des objets et gère le comportement à petite échelle des objets séparément des interactions avec d'autres objets.
18. MEMENTO—Lorsque vous discutez avec plusieurs filles en même temps, assurez-vous de vous rappeler clairement ce que vous venez de dire aux filles, sinon les filles seront malheureuses lorsqu'elles le découvriront. Heureusement, j'ai un mémo sur quelle fille. Je viens de parler. Je fais une copie de tout ce que je dis et je la mets dans mon mémo afin de pouvoir vérifier mes enregistrements précédents à tout moment.
Mode Mémo : l'objet Mémo est un objet utilisé pour stocker un instantané de l'état interne d'un autre objet. Le but du modèle mémo est de capturer, d'extérioriser et de stocker l'état d'un objet sans détruire l'encapsulation, afin que l'objet puisse être restauré à son état stocké à un moment approprié dans le futur.
19. OBSERVATEUR—Vous voulez connaître les dernières informations MM de notre entreprise ? Rejoignez simplement le groupe de messagerie MM Intelligence de l'entreprise. Tom est responsable de la collecte de renseignements. Il n'a pas besoin de nous informer une par une des nouvelles informations qu'il découvre. En tant qu'abonnés (observateurs), nous pouvons. recevoir les informations à temps
Modèle d'observateur : le modèle d'observateur définit une relation de dépendance multi-équipes, permettant à plusieurs objets observateurs de surveiller un certain objet sujet en même temps. Lorsque cet objet sujet change d'état, il en informe tous les objets observateurs, leur permettant de se mettre à jour automatiquement.
20. ÉTAT—Lorsque vous sortez avec une fille, vous devez faire attention à son état. Son comportement sera différent selon les états. Par exemple, si vous lui demandez d'aller au cinéma ce soir, une fille qui n'est pas intéressée. vous le ferez. Si vous dites « Il se passe quelque chose », une fille qui ne vous déteste pas mais qui n'est pas encore tombée amoureuse de vous dira « D'accord, mais puis-je amener mon collègue avec vous ? », et une fille qui a déjà aime, vous direz "Quelle heure est-il ? Écoutez. Que diriez-vous d'aller au bar après le film ?" Bien sûr, si vous vous comportez bien en regardant le film, vous pouvez également changer le statut de la fille de la haine ou de l'aversion pour l'aimer.
Modèle d'état : le modèle d'état permet à un objet de modifier son comportement lorsque son état interne change. L'objet semble avoir changé de classe. Le modèle d'état enveloppe le comportement de l'objet étudié dans différents objets d'état. Chaque objet d'état appartient à une sous-classe d'une classe d'état abstraite. L'intention du modèle d'état est de permettre à un objet de modifier son comportement lorsque son état interne change. Le modèle d'état nécessite la création d'une sous-classe de la classe d'état pour chaque état que le système peut obtenir. Lorsque l'état du système change, le système modifie la sous-classe sélectionnée.
21, Stratégie — Différentes stratégies avec différents types de MM, certaines sont préférables pour demander des films, et certaines sont douées pour manger des collations. Certaines vont au cœur de la mer, j'ai beaucoup de stratégies dans ma boîte à outils. pour courir après les filles.
Modèle de stratégie : le modèle de stratégie cible un ensemble d'algorithmes et encapsule chaque algorithme dans une classe indépendante avec une interface commune, afin qu'ils puissent être remplacés les uns par les autres. Le modèle de stratégie permet à l'algorithme de changer sans affecter le client. Le modèle de stratégie sépare le comportement de l'environnement. La classe d'environnement est responsable de la maintenance et de l'interrogation de la classe de comportement, et divers algorithmes sont fournis dans des classes de stratégie spécifiques. L'algorithme et l'environnement étant indépendants, l'ajout, la suppression et la modification de l'algorithme n'affecteront pas l'environnement et le client.
22. MÉTHODE DE MODÈLE —— Avez-vous lu l'article classique « Comment convaincre une fille d'aller au lit » ? Les filles se rendent compte que les étapes immuables pour se coucher sont divisées en huit étapes (méthode Modèle) : rencontre fortuite, briser la glace, poursuite, baiser, préliminaires, prise en main, caresses et entrée. Cependant, chaque étape est différente pour chacun. situations. La façon de procéder dépend de votre adaptabilité (implémentation spécifique) ;
Modèle de méthode modèle : Le modèle de méthode modèle prépare une classe abstraite, implémente une partie de la logique sous la forme de méthodes concrètes et de constructeurs concrets, puis en déclare certaines. méthodes abstraites pour forcer les sous-classes à implémenter la logique restante. Différentes sous-classes peuvent implémenter ces méthodes abstraites de différentes manières et donc avoir différentes implémentations du reste de la logique. Développez d’abord un cadre logique de haut niveau et laissez les détails de la logique à des sous-classes spécifiques.
23. VISITEUR—La Saint-Valentin est là, et chaque fille devrait recevoir un bouquet de fleurs et une carte. Cependant, les fleurs envoyées par chaque fille doivent être basées sur ses caractéristiques personnelles, et chaque carte doit également être basée sur. ses caractéristiques personnelles. Je ne peux pas le comprendre par moi-même, alors je ferais mieux de demander au fleuriste et au propriétaire de la boutique de cadeaux d'être des visiteurs. Laissez le fleuriste choisir un bouquet de fleurs en fonction des caractéristiques de la fille et laissez le cadeau. le propriétaire du magasin choisit une carte en fonction des caractéristiques de chaque personne. Cela rend les choses beaucoup plus faciles ;
Modèle de visiteur : le but du modèle de visiteur est d'encapsuler certaines opérations appliquées à certains éléments de la structure de données. Une fois que ces opérations doivent être modifiées, la structure de données acceptant cette opération peut rester inchangée. Le modèle visiteur convient aux systèmes avec des structures de données relativement indéterminées. Il découple le couplage entre la structure de données et les opérations qui agissent sur la structure, permettant à l'ensemble des opérations d'évoluer relativement librement. Le modèle de visiteur facilite l'ajout de nouvelles opérations en ajoutant une nouvelle classe de visiteur. Le modèle visiteur concentre les comportements associés dans un objet visiteur au lieu de les disperser dans des classes de nœuds. Lorsque vous utilisez le modèle Visiteur, placez autant de logique de navigation d'objets que possible dans la classe Visiteur plutôt que dans ses sous-classes. Le modèle visiteur peut accéder aux classes membres appartenant à différentes hiérarchies dans plusieurs hiérarchies de classes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!