2017-04-24 7 views
2

뷰어 (액티비티)를 프리젠터와 분리하거나 뷰 (액티비티)가 구현하는 인터페이스를 사용하여 디커플레이션하기 위해 의존성 삽입 (예 : Dagger2) 발표자로부터?Android (DI - 인터페이스)의 MVP 패턴

내가 혼란스러워. 내가 단원 테스트를 시도 할 때 발표자가 두 가지 접근 방식 모두 작동해야한다. 하지만 단순한 인터페이스가 충분할 때 단검과 같은 도구를 사용해야하는 이유는 무엇입니까? 호프 그 smbdy. 도울 수있다. 감사합니다

+0

나는 그것이 현재 모호하게 될 때이 질문은 좀 불분명 찾을 수 있습니다. 무슨 뜻인지 최소한의 코드 예제를 제공 할 수 있습니까? –

+0

무엇이 불분명합니까? 예를 들어보기에서 구현 한 인터페이스와 발표자가 제시 한 인터페이스를 사용하여보기에서 발표자에게 참조를 전달할 수 있습니다. 그래서 나는 클래스들 사이에 약한 커플 링을 가질 것이다. 인터페이스의 구현은 발표자에게 중요하지 않습니다. 즉, MockView를 사용할 수 있습니다. Dagger2를 사용하면 결과는 같지만 뷰 객체가 표현 자에 삽입됩니다. 테스트면에서 인터페이스를 사용하는 것이 더 쉽습니다. 단검을 사용하면 어떤 이점이 있습니까? 인터페이스를 사용하면 문제를 훨씬 쉽게 해결할 수 있습니다. – ECommerce

+0

단검 2가 있거나없는 MVP의 차이점을 확인하려면 발표자의 종속성을 제외하면 차이가 없습니다. 매우 작은 객체 그래프를 가진 발표자에게는 전혀 차이가 없습니다. –

답변

0

인터페이스와 단검을 사용하여 어떤 간섭도 없습니다. 대거는 DI (종속 주입) 용으로, MVP에서 다양한 레이어 요구 사항을 제공하는 데 사용됩니다.

MVP가 있어야하며 뷰가 인터페이스를 구현하여 표현 자와 분리되어 있기 때문에보기 인터페이스를 항상 사용해야합니다.

대거를 사용하여 특정 레이어의 항목을 다른 레이어에 제공합니다. Dagger를 완전히 제쳐두고, 헬퍼 인터페이스를 구현 한 헬퍼 클래스를 작성하고 코드 전체에 걸쳐 구조를 통해 발표자에게 전송할 수 있습니다. 그러나 이것은 다소 지저분하고 대거를 사용하는 이유입니다. 내가 단검을 사용하는 내 샘플 프로젝트에서

보기 : https://gitlab.com/amirziarati/Echarge