2017-02-24 6 views
0

"문제"는 MVP에도 유효하다고 생각하지만 제 경우에는 MVI를 위해 소란을 씁니다.Mosby MVI - 발표자 간의 종속성

사용 사례 난과 뷰 페이저에서 단일 항목 데이터 목록을 표시하는 상세 도면 (각 데이터리스트 자체) 데이터의리스트를 표시하는 메인 뷰를 갖는다.

세부보기에서 항목을 삭제할 수 있습니다. 즉, 세부보기와 기본보기를 업데이트해야합니다 (예 : 기본보기에 각 항목의 하위 항목 수가 표시 될 수 있으므로이 번호는 업데이트)

질문

어떻게 이것을 해결 될 수있다?

아이디어

각 수준은 글로벌 주제에 구독을 발표자 및 각보기가 제대로 ViewState있어 업데이트 할 수 있도록 삭제 작업이 글로벌 주제에 MainPartialStateDetailPartialState를 보냅니다.

외부 레벨의 앱 로직에서 내부 레벨의 부분 상태를 처리하는 더 좋은 방법이 있습니까?

답변

0

두 발표자 모두 항목을 관리하는 비즈니스 로직 부분을 준수해야합니다. 예 : 어디에서 항목을로드합니까? 데이터베이스에서로드됩니까? 이 예에서 MainPresenter와 DetailsPresenter는 동일한 데이터베이스를 관찰하며 데이터베이스에서 항목을 삭제할 때마다 Presenter에 둘 다 통지됩니다.

+0

이것은 두 발표자 모두에게 공유 (전역) 관찰 가능을 가져야하며 'ItemDeletedEvent'와 같은 이벤트가이 관찰 가능으로 생성되고 두 발표자가이 관찰 가능에 가입하고이 이벤트를 각각의 부분 상태로 올바르게 변환한다는 것을 의미합니다. 주 감속주는 나머지를 할거야, 맞습니까? – prom85

+0

당신이 유용 할 수 있습니다 : http://hannesdorfmann.com/android/mosby3-mvi-4 – sockeqwe

+0

나는 그렇게 이해했습니다. 단순성을 선호하면 작은 부작용이 발생합니다. 두 발표자 모두에서 두 번 일을해야 할 수도 있습니다. 그러므로 당신은 분리 된 논리를 얻습니다. – prom85