옵저버 패턴

Gwonyeong·2023년 3월 23일
0

cs-note

목록 보기
4/8

주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메소드 등을 이용해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴!

  • 예를 틀어 sns에서 주체인 다른 사람을 팔로우 했다면 팔로우를 받은 사람에게 알림이 가는 것!

자바스크립트에서는 프록시 객체를 통해 구현할 수 있음!

🖥️ 프록시? 프록시 객체는 어떤 대상의 기본적인 동작(속성 접근, 할당, 순회, 열거, 함수 호출 등)의 작업을 가로챌 수 있는 객체를 뜻하며, 자바스크립트에서 프록시 객체는 두 개의 매개변수를 가짐.
  • target : 프록시할 대상
  • handle: 프록시 객체의 target동작을 가로채서 정의할 동작들이 정해져 있는 함수

const handler = {
	get: function(target, name){
		return name === 'name' ? `${target.a} ${target.b}` : target[name]
	}
}
const p = new Proxy({a : "first", b : "second"}, handler)
console.log(p.name) // first second

new Proxy로 선언한 객체의 a와 b라는 속성에 특정 문자열을 담아서 handler에 name이라는 속성에 접근 할 때는 a , b를 합쳐서 문자열을 만들어라. 라는 명령을 준것임.

  • p라는 변수에 name이라는 속성을 선언하지 않았는데도 그 부분을 가로채 문자열을 만들어 반환하는 것.
profile
부동의 첫사랑

0개의 댓글