이 기사는 주로 Python의 프록시 모드 구현을 소개합니다. 흥미로운 예제를 사용하여 특정 참조 가치가 있는 데모 코드를 작성하는 것이 도움이 되기를 바랍니다.
프록시 패턴 정의: 다른 객체에 대한 프록시를 제공하여 이 객체에 대한 액세스를 제어합니다. 어떤 경우에는 한 개체가 적합하지 않거나 다른 개체를 직접 참조할 수 없으며 프록시 개체가 클라이언트와 대상 개체 사이의 중개자 역할을 할 수 있습니다.
프록시 모드의 적용 시나리오:
1. 원격 프록시, 즉 서로 다른 주소 공간에 있는 개체에 대한 로컬 표현을 제공합니다. 이는 개체가 다른 주소 공간에 존재한다는 사실을 숨깁니다.
2. 가상 에이전트는 필요에 따라 생성하기에는 비용이 많이 드는 개체입니다. 인스턴스화하는 데 시간이 오래 걸리는 실제 개체를 저장하는 데 사용합니다. 예를 들어 HTML에서는 그림을 로드하는 데 시간이 오래 걸리므로 실제 그림을 대체하는 데 가상 에이전트가 사용됩니다.
3. 실제 개체에 액세스하는 동안 권한을 제어하는 데 사용됩니다
4. 지능적인 안내는 실제 개체가 호출되면 에이전트가 다른 작업을 처리한다는 의미입니다
예: 남성 A가 여성 A를 좋아합니다. , 그러나 나는 그녀에게 내 감정을 감히 표현할 수 없었기 때문에 남성 B에게 나의 대리인 역할을 맡기고 그를 대신하여 여성 A에게 선물을 보내도록 맡겼습니다. 그들은 모두 남성 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()
관련 튜토리얼: Python 비디오 튜토리얼
위 내용은 Python 학습 에이전트 모드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!