Sub module은 내가 어디에 붙어 있는지 몰라야 한다. 즉 module "내부" => "외부" 로 dependency가 없어야 한다. 따라서, Inter-Module Communication은 상위 module을 통하는게 좋아 보인다.
+--------------------+ +-------> Parent Module +---+ | +---------+----------+ | | | | Parent Module is observing Notify Notify | | | +---------+-+ +---------v-+ +------v---------+ | Module A | | Module B | | ... | +-----------+ +-----------+ +----------------+
이 경우, 문제는 Lazy-loading module이다.
Lazy-loading module의 Concept상, Parent Module (이 경우, Root Module)에서 Notify를 할 수 없고 해서도 안된다 - Notify를 하려면, loading을 해야하는데... 그럼 더 이상 lazy loading이 아니다!
(만약 해야할 필요가 있다면, Lazy-loading으로 만들면 안된다. )
따라서, Lazy-loading module의 경우, 일반적인 sub-module의 제약사항에 더불어 추가적으로, 다음의 조건이 필요하지 않나... 싶다.(아직 좀더 많은 공부가 필요하다.)
- App. singleton provider 를 사용하면 안된다.
- module이 loading되었음을 가정한, "외부 => module" 로 communication이 없어야 한다.
<= 이거 상당히 강력한 제약사항이다!!!
그리고, 이건: "Inter-lazy-loading module간 communication이 없어야 한다." 를 의미하기도 한다.
'Domain > Web' 카테고리의 다른 글
[Angular] ngrx/store state 변화 이해하기... (기초) (0) | 2018.07.11 |
---|---|
[Angular] Material - tooltip show 도중 내용 변경시 issue. (0) | 2018.07.11 |