В ходе решения задачи, задать себе вопрос - Какой тип задачи мне нужно решить?
Если структурировать взаимодействие между объектами - структурный тип
Если создать нужный объект(ы) в зависимости от условий - порождающий
Если определить поведенее алгоритма или объекта - поведенческий.
Далее идти в данную категорию и искать себе подходящий. Будет приходить понимание, какой шаблон и когда использовать.
Описание конечно в общих чертах, но смысл такой.