iOS | RIBs – Component, Dependency, Dynamic dependencies, Static Dependencies

RIB에서 Dependencies 와 Components


Dependency
– RIB가 부모 RIB 에서 만들어질 때, 필요한 Dependency(종속성)로 구성된 프로토콜.


Component
Dependency protocol 를 구현하는 class.
– RIB Builder 에 부모 RIB의 dependency 를 제공하고, RIB가 본인과 본인의 자식 RIB들을 만드는 Dependency를 가져야 한다.


사용
부모 RIB는 자식 RIB를 만들 때
자신의 Component를 자식의 Builder의 Constructor dependency 로 주입한다.
주입된 Component는 자체적으로 어떤 Dependency를 자식 RIB에게 종속시킬 것인가 결정한다.

Component로 구현되는 Dependency는
DI tree 로 전달되어야 하는 것들을 가지고 performance 이유로
구성하고 공유하는데 수고가 많이 들어간다 (= 그냥 만들기 귀찮고 불편하다,,,)


Dynamic dependencies VS Static Dependencies

그림 설명
1. 처음 앱이 실행되고 RootRIB가 생성되고 존재하는 유저정보로 UserInfoRIB를 만든다.
2. UserInfo RIB 에서 email은 필수 정보. userName은 옵셔널이다.
3. 전혀다른 RIB에서 userName이 업데이트 되면 Root RIB를 통해 UserInfo RIB의 userName이 업데이트 된다.


Dynamic dependencies, 동적 종속성
위의 그림에서 userName
– 동적으로 사용자의 동작 (또는 새로운 네트워크 정보의 수신? 등)으로 다른 RIB 에 영향을 주는 것.
– RIB 의 init, deinit과는 상관없다.
– 초기화 값이 지정되지 않으므로 새로운 값에서 nil이 발생할 경우를 대비 하는 것이 좋다. ( = 다른 RIB에서의 핸들링 수고가 줄어든다.)


Static Dependencies, 정적 종속성
위의 그림에서 email
– RIB의 init 때 주입되는 값. (= 기본 값이 대입된다)



답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중