if나 switch로 구분해서 호출하는건 너무 구데기인거 같음 그래서 바꿔봄 매칭해주는 json 만들었음 원샷원콤으로 이렇게 하면 실행되어야 하는데 오류가 난다 방법없냐? 자바는 인터페이스 만들고 그거 해주면 자동적으로 할 수 있는데 js는 상당히 불편하네..
reducer 처럼 하면 됨
예시좀
이벤트 스트림으로 이벤트 타입이 { type: "EVENT_TYPE", payload: DATA } 이렇게 오도록 이벤트를 설계한다음에
dispatcher 함수 만들고 핸들러를 이벤트 타입이랑 같은 이름으로 만들고 싹다 객체로 묶은다음 dispatch에서 객체에서 이벤트 타입으로 핸들러 꺼내서 분기하고 payload 넘기는식으로
함수 더 늘어날거 아니면 걍 스위치 케이스 쓰는게 낫지않냐
개늘어나
const handlers = { foo() { }, bar() { } } function dispatch({ type, payload}) { return handlers[type](payload); }
스위치는 핸들러를 나중에 확장하려면 코드를 까야하잖음
근데 저 형태 좋은 기법임?
솔직히 구데기같음
자바처럼 클래스 안에 정의하고 데커레이터(어노테이션) 써서 매칭하는 방법도 있기야 한데 데커레이터는 기본 문법이 아님
노드로는 이런거 좋게 구현할 방법없음? 버전도 구데기 버전이라 최신 기법이 안돼
노드가 구버전인거랑 님이 코드를 작성하는거랑은 별개임 어차피 트랜스파일러 돌려면 노드 런타임 버전은 안탐
님이 프론트를 아는 사람이면 redux의 구현이라 보면 되고 백엔드를 아는사람이면 커맨드 패턴의 아류라 보면 되는거고
백엔드니까 흠 어렵넹
아니 이 개 쉬운걸 뭔 기법, 데커레이터야;;
ㅋ=ㅋㅋ
1. 직접 closure를 넣고 호출하는 방법도 있고 fn = { order: ->(num) { p num }, ... }; fn[:order].call(123456)
2. instance scope에서 이름으로 method 직접 얻어오는 메타 함수가 있음. 그걸로 메소드 얻어와서 호출해도 됨
그거 좋은방법?
다이나믹하게 호출하는거라 속도는 조금 느리지만 편함 some_object.send(dynamic_method_symbol) 이런식으로 쓰면 그만임
메소드 레퍼런스를 얻어서 호출하는 방법도 있음. 이건 줫나 빠름. method = some_object.method(method_symbol); method.call
네가 쓰는 언어 표준함수들을 찾아봐. 전에도 알려줬더니 여태 뭐했냐. meta, method reference, dynamic method call by name 이런식으로 구글링해보던가