728x90
반응형

일단 옵저버 패턴을 알아야 한다. 잘 정리해놓은 사이트가 있으니 참고하길 바란다.

https://codingjobrice.tistory.com/153

 

[디자인 패턴 기초] 옵저버 패턴(observer pattern)

옵저버 패턴 (observer pattern) 정의를 살펴보기 전에 클래스 다이어그램부터 살펴보자! 당연히 이해가 되지 않을 것이다. 옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체

codingjobrice.tistory.com

 

setOnClickerListener는 옵저버 패턴

우리가 안드로이드 프로그래밍을 하면서 버튼 클릭 수행 시 

binding.button.setOnClickListener{
            // 버튼 클릭 시 수행할 로직 구현
}

위와 같은 코드를 사용한다.

이 곳에는 옵저버 패턴이 사용된다. 어떻게 사용되는지 뜯어보자.

 

저 위의 코드는 너무 축약되었다. 이해하기 좋게 원시적으로 돌아가보자.

 

val button = binding.button

button.setOnClickListener(View.OnClickListener { 
            // 로직 구현
})

 

우선 Subject를 찾아보자. 

Subject는 이벤트를 발생시키는 UI 요소 즉, 버튼 UI이다.  여기선 button 이겠지.

btn은 클릭 이벤트를 감지하고, 등록된 Observer에게 클릭 이벤트가 발생했다고 알려준다.

 

그럼 여기서 Observer는 무엇인가?

OnClickListener가 Observer 역할을 한다. button에서 클릭 이벤트를 감지했음을 OnClickListener에게 알려주고 OnClickListener는 구현한 로직을 수행하게 된다.

 

그냥 생각없이 써왔는데 옵저버 패턴이였던 것이었다... 소름

728x90
반응형

+ Recent posts