JAVA

JAVA 디자인패턴 - 옵저버(Observer) 패턴

TECH 톡마스터 2023. 7. 13.

[ 목차 ]

    Java 디자인패턴 - 옵저버(Observer) 패턴
    Java 디자인패턴 - 옵저버(Observer) 패턴

    안녕하세요. 이번에는 Java 디자인패턴 중 옵저버(Observer) 패턴에 대해서 알아보겠습니다.

    1. 옵저버(Observer) 패턴이란?

    옵저버 패턴은 디자인 패턴 중 하나로, 한 객체의 상태가 변화하면 이를 알릴 수 있는 방식입니다. 이 패턴을 사용하면 객체 간의 의존성을 줄이고, 서로 약하게 결합된 객체들이 상호 작용할 수 있는 구조를 갖추게 됩니다.

    2. 옵저버(Observer) 패턴 구현 방법

    옵저버 패턴은 다음 요소들을 통해 구현됩니다:

    1. Observer 인터페이스: 객체 변경 사항을 감지하고 처리하는 인터페이스입니다.
    2. Subject 인터페이스: Observer 객체를 등록 및 제거하며, Observer 객체들에게 변경 사항을 알리는 인터페이스입니다.
    3. ConcreteSubject 클래스: Subject 인터페이스를 구현하는 실제 클래스입니다.
    4. ConcreteObserver 클래스: Observer 인터페이스를 구현하는 실제 클래스입니다.
    // Observer 인터페이스
    interface Observer {
       void update(String message);
    }
    
    // Subject 인터페이스
    interface Subject {
       void registerObserver(Observer observer);
       void removeObserver(Observer observer);
       void notifyObservers();
    }
    
    // ConcreteSubject 클래스
    class MySubject implements Subject {
       private List<Observer> observers;
       private String message;
    
       public MySubject(){
           this.observers=new ArrayList<>();
       }
    
       @Override
       public void registerObserver(Observer observer) {
           observers.add(observer);
       }
    
       @Override
       public void removeObserver(Observer observer) {
           observers.remove(observer);
       }
    
       @Override
       public void notifyObservers() {
           for (Observer observer : observers) {

    3. 옵저버(Observer) 패턴의 장단점

    3.1. 장점

    • 객체 간의 의존성을 줄여 유연한 설계를 가능하게 합니다.
    • 이벤트 발생 시 효율적으로 처리할 수 있습니다.
    • 새로운 Observer 구현체를 쉽게 추가할 수 있습니다.

    3.2. 단점

    • 많은 수의 Observer 객체가 사용되면 성능 문제가 발생할 수 있습니다.
    • 복잡한 구조로 인해 유지보수가 어려워질 수 있습니다.

    4. 옵저버(Observer) 패턴의 활용 예

    옵저버 패턴은 다양한 상황에서 사용할 수 있습니다. 예를 들어, 주식 거래소에서 주식 가격이 변동될 때 관심 있는 투자자들에게 변경 사항을 알리는 경우, 소셜 미디어 또는 알림 서비스에서 사용자가 구독한 콘텐츠 변경 알림을 전달하는 경우 등이 있습니다.

     

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

     

    디자인패턴 - 팩토리(Factory) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

     

    디자인패턴 - 팩토리(Factory) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - 디자인패턴 - 어댑터(Adapter) 패턴

     

    디자인패턴 - 어댑터(Adapter) 패턴

    [ 목차 ] 안녕하세요. 오늘 알아볼 패턴은 어댑터(Adapter) 패턴입니다. 1. 어댑터(Adapter) 패턴 이란? 어댑터 패턴은 디자인 패턴 중 하나로, 서로 다른 인터페이스를 가진 클래스 또는 객체를 협력할

    tech.dj-tiger.com

     

    2023.07.12 - [JAVA] - JAVA 디자인패턴 - 싱글톤(Singleton) 패턴

     

    디자인패턴 - 싱글톤(Singleton) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴 [ 목차 ] 안녕하세요. 자바에는 다양한 디자인 패턴이 존재하고, 각 패턴은 특정한 문제를 해결하기 위해 설계되었습니다. 적절한 디자인 패턴

    tech.dj-tiger.com

     

     

     

    댓글

    💲 추천 글