Начните с того, что Module не должен знать о том, как создавать Adapter. Что Model должна явно зависеть от Module (и, наверное, не должна знать ничего об Adapter).
Очень хорошая статья была на Хабре:
Inversion of Control: Методы реализации с примерам...
Также советую почитать:
Are Static Methods/Variables bad practice?