Cet article présente principalement l'implémentation du mode proxy en Python. Il utilise un exemple intéressant pour écrire un code de démonstration, qui a une certaine valeur de référence. J'espère que cela vous sera utile.
Définition du modèle de proxy : Fournissez un proxy pour d'autres objets afin de contrôler l'accès à cet objet. Dans certains cas, un objet ne convient pas ou ne peut pas référencer directement un autre objet, et un objet proxy peut servir d'intermédiaire entre le client et l'objet cible.
Scénarios d'application du mode proxy :
1. Proxy distant, c'est-à-dire fournir une représentation locale d'un objet dans différents espaces d'adressage. Cela masque le fait qu'un objet existe dans un espace d'adressage différent.
2. Les agents virtuels sont des objets coûteux à créer selon les besoins. Utilisez-le pour stocker des objets réels qui mettent beaucoup de temps à s'instancier. Par exemple, en HTML, les images mettent beaucoup de temps à se charger, donc des agents virtuels sont utilisés pour remplacer les images réelles
3. Proxy de sécurité, utilisé pour. contrôler l'accès aux objets réels Autorisations
4. Le guidage intelligent signifie que lorsque l'objet réel est appelé, l'agent gère d'autres choses
Par exemple : l'homme A aime la femme A, mais il n'ose pas pour lui avouer. Par conséquent, l'homme B est chargé en tant qu'agent d'envoyer des cadeaux à la femme A en son nom. Le point clé pour réaliser cette exigence est que l'homme A et la femme A n'ont pas de contact direct l'un avec l'autre. contact indirect par l'intermédiaire de l'agent mâle B.
#encoding=utf-8 __author__ = 'kevinlu1010@qq.com' from abc import ABCMeta, abstractmethod class FemaleA(): def __init__(self, name): self.name = name class Male(): __metaclass__ = ABCMeta @abstractmethod def send_flower(self): pass @abstractmethod def send_chocolate(self): pass @abstractmethod def send_book(self): pass class MaleA(Male): def __init__(self, name, love_female): self.name = name self.love_female = FemaleA(love_female) def send_flower(self): print '%s送花给%s' % (self.name, self.love_female.name) def send_chocolate(self): print '%s送巧克力给%s' % (self.name, self.love_female.name) def send_book(self): print '%s送书给%s' % (self.name, self.love_female.name) class Proxy(Male): def __init__(self, name, proxyed_name, love_female): self.name = name self.proxyed = MaleA(proxyed_name, love_female) def send_flower(self): self.proxyed.send_flower() def send_chocolate(self): self.proxyed.send_chocolate() def send_book(self): self.proxyed.send_book() if __name__ == '__main__': p = Proxy('男B', '男A', '女A') p.send_book() p.send_chocolate() p.send_flower()
Tutoriels associés : Tutoriel vidéo Python
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!