Согласен с предыдущим ответом, очень много зависит от типа приложения и что хочется в нем реализовать
Думаю что начать стоит с знакомства с MVC, MVP, MVVM паттернов проектирования, а дальше уже знакомится с остальными паттернами и думать стоит ли их применять у себя в проекте или нет