제 이번 미션의 목적은 힐트에 대한 이해였기 때문에, 최대한 힐트를 따라 만들어봤습니다. 코드는 직접적으로 참고하지 않고, 학습을 하면서 어떻게 구현했을까 고민하는 방식으로 진행했습니다. 힐트 공식문서 정리

우선, 저희는 코드 제너레이션같은 기법을 사용하지 않고, 리플렉션만으로 구현해야 하기 때문에, 액티비티나 애플리케이션 같은 경우는 상속 구조를 만들 수 밖에 없다고 판단했습니다(상속 외, 다른 방법이 있는지는 생각이 안납니다).

참조 구조

[ mendeldi 모듈 → di 모듈 ]의 구조로 mendeldi가 di모듈을 참조하는 구조임.

di 모듈에 있는 순수 코틀린으로 만들어진 Module 클래스

Untitled

mendeldi 모듈에 있는 클래스들 기본 설명

모듈들의 기본 참조 구조(힐트 구조 반영)

Untitled

abstract class ApplicationModule

이 클래스를 상속 구현하는 클래스 안에는 다음과 같은 메소드들이 정의되어 있어야 한다. 애플리케이션 생명주기로 관리되어야 할 객체들에 대한 생성방법이 정의된 메소드들을 갖고 있어야 한다. 여기서 생성되는 객체들은 애플리케이션 컨텍스트에 참조가 가능하다.

fun inject(application: DiApplication)