Python 앱의 통신 혼란에 작별 인사
Feb 26 2023
Django, Flask, Pygame 및 PyQt에서 사용하는 이 패턴의 마법을 발견하십시오.
중재자 디자인 패턴은 중재자 개체를 통해 간접적으로 서로 통신할 수 있도록 하여 응용 프로그램 구성 요소 간의 결합을 줄이는 데 도움이 되는 동작 디자인 패턴입니다. 이 디자인 패턴을 사용하는 인기 있는 Python 라이브러리 이 디자인 패턴은 소프트웨어 개발에서 널리 사용되는 패턴이며 Python에는 이를 사용하는 인기 있는 라이브러리가 많이 있습니다.
중재자 디자인 패턴은 중재자 개체를 통해 간접적으로 서로 통신할 수 있도록 하여 응용 프로그램 구성 요소 간의 결합을 줄이는 데 도움이 되는 동작 디자인 패턴입니다.
이 디자인 패턴을 사용하는 인기 있는 Python 라이브러리
이 디자인 패턴은 소프트웨어 개발에서 널리 사용되는 패턴이며 Python에는 이를 사용하는 인기 있는 라이브러리가 많이 있습니다.
여기 몇 가지 예가 있어요.
- Django 신호 : Django 신호는 Django 웹 프레임워크의 일부로, 신호를 보내고 받을 수 있도록 하여 응용 프로그램의 구성 요소를 분리하는 방법을 제공합니다. 신호 프레임워크는 중재자 디자인 패턴을 사용하여 구성 요소 간의 통신을 관리합니다.
- 파이게임 : 파이게임은 비디오 게임을 만들기 위한 파이썬 모듈 세트입니다. 파이게임은 Mediator 패턴을 사용하여 게임의 그래픽 및 입력 처리에서 게임 논리를 분리합니다. Pygame의 Mediator 객체는 이벤트 대기열이라고 하며 게임의 이벤트 흐름을 관리합니다.
- PyQt : PyQt는 Qt 애플리케이션 프레임워크용 Python 바인딩 세트입니다. Qt 프레임워크는 Mediator 패턴을 광범위하게 사용하여 사용자 인터페이스의 다양한 구성 요소를 분리합니다. PyQt는 클래스와 같은 중재자 패턴을 구현하는 일련의 클래스를 제공합니다
QSignalMapper. - Flask-Signals : Flask-Signals는 Flask 응용 프로그램에 신호를 추가하는 간단한 방법을 제공하는 Flask 확장입니다. Flask-Signals는 중재자 패턴을 사용하여 응용 프로그램의 다양한 부분을 분리하고 신호를 등록하고 발송하는 방법을 제공합니다.
- PyMediator : PyMediator는 Mediator 패턴의 간단한 구현을 제공하는 Python 라이브러리입니다. 중재자 개체를 만들고 서로 통신해야 하는 구성 요소를 등록할 수 있습니다. 중재자 개체를 통해 구성 요소 간에 메시지를 보내는 방법을 제공합니다.
작동 방식
Python에서는 클래스와 메서드를 사용하여 중재자 패턴을 구현할 수 있습니다.
다음은 예입니다.
class Mediator:
def __init__(self):
self.components = []
def register_component(self, component):
self.components.append(component)
def notify(self, sender):
for component in self.components:
if component != sender:
component.receive(sender)
class Component:
def __init__(self, mediator):
self.mediator = mediator
def send(self):
self.mediator.notify(self)
def receive(self, sender):
print(f"Received message from {sender}")
if __name__ == '__main__':
mediator = Mediator()
component1 = Component(mediator)
component2 = Component(mediator)
mediator.register_component(component1)
mediator.register_component(component2)
component1.send() # Sends message to the mediator
클래스 Component는 응용 프로그램의 개별 구성 요소를 나타냅니다. 메소드 는 중재자의 메소드 send를 호출하여 중재자에게 메시지를 보냅니다 notify. 이 receive메서드는 중재자로부터 메시지를 받고 메시지를 콘솔에 출력합니다.
메인 함수에서 중재자와 두 개의 구성 요소를 만듭니다. 메서드를 사용하여 중재자에 두 구성 요소를 등록합니다 register_component. send그런 다음 중재자에게 메시지를 보내는 구성 요소 중 하나의 메서드를 호출합니다 . 중재자는 콘솔에 메시지를 인쇄하는 다른 구성 요소에 알립니다.
이것은 단순한 예일 뿐이지만 중개자 패턴은 여러 구성 요소가 분리된 방식으로 서로 통신해야 하는 보다 복잡한 애플리케이션에 유용할 수 있습니다.
시간 내 주셔서 감사합니다!
자유롭게 공유하고 팔로우하세요!

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































