На принципы проектирования это не должно влиять, однако это позволяет вам проще вставлять костыли и устроить сильную связность кода.
В этом случае контракт так же работает: Domain - pure Java, data/presentation используют Domain и могут содержать классы Android Framework. Преимущество использования модулей - они «бьют по рукам», если пытаешься пробросить зависимость против правил. В случае с разбиением по пакетам, за этим нужно следить на код ревью или писать свои статические проверки. Поставил таймштамп на видео, там есть несколько альтернативных схемок, возможно, поможет разобраться: https://youtu.be/MYXt_9d_2ps?t=3m17s
Обсуждают сегодня