옵저버 패턴(Observer Pattern )

Observer Pattern
홍윤's avatar
Oct 04, 2024
옵저버 패턴(Observer Pattern )

Flutter 상태관리를 위해 옵저버 패턴을 사용하는 것을 알았다.

💡
옵저버 패턴(Observer Pattern)은 객체의 상태 변화가 있을 때, 그 변화를 자동으로 통지받아 업데이트할 수 있도록 하는 디자인 패턴입니다. 이 패턴은 발행자(Publisher)와 구독자(Subscriber)의 관계를 설정하여, 하나의 객체가 상태를 변경하면 그와 연관된 다른 객체들이 해당 변화를 감지하고 동작할 수 있도록 만듭니다.
옵저버 패턴은 특히 상태 변화가 여러 객체에 영향을 미치는 상황에서 유용하게 사용할 수 있습니다. Flutter에서는 이 패턴을 활용해 상태 관리 및 UI 업데이트를 효율적으로 구현할 수 있습니다.

옵저버 패턴 구성 요소:

  1. Subject(주체, 발행자): 상태 변화를 감지하고 옵저버들에게 상태 변화를 통지하는 역할을 합니다.
  1. Observer(옵저버, 구독자): 주체가 통지한 상태 변화를 받는 객체들입니다. 상태 변화를 감지하고 자신이 해야 할 작업을 수행합니다.
  1. Subscription(구독): 옵저버는 주체에게 구독을 요청하고, 주체는 구독한 옵저버에게 상태 변화가 있을 때 이를 통지합니다.
notion image

옵저버 패턴의 동작 원리:

  1. 옵저버는 주체에게 자신을 등록(구독)합니다.
  1. 주체는 상태 변화가 발생하면 모든 구독자(옵저버)에게 통지합니다.
  1. 옵저버는 통지를 받으면 상태에 따라 작업을 수행합니다.

Flutter에서 옵저버 패턴 예시:

Flutter에서는 Provider 같은 패키지를 사용해 상태 변화가 있을 때 UI가 자동으로 업데이트되도록 할 수 있습니다.
class Counter with ChangeNotifier { int _count = 0; int get count => _count; void increment() { _count++; notifyListeners(); // 상태 변화 알림 } }
 
이처럼 주체가 상태를 관리하고, 상태가 변경되면 옵저버들이 UI를 업데이트하는 구조입니다. notifyListeners()가 호출되면 관련 위젯들이 자동으로 재렌더링됩니다.
Share article

Uni