Как выучить/понять ООП паттерны?
теория и практика. и так по кругу.
только чтение ничего не даст.
прочитали паттерн -> посмотрели диаграммы -> тут же сели и попробовали реализовать самостоятельно, а не переписывая с книги/инторнетов -> посмотрели готовые реализации -> сделали выводы -> взялись за следующий.
ну и параллельно постигать что такое ооп вообще. для этого, кстати, можно и нужно читать фундаментальные вещи, без привязки к языку.
Внезапно захотелось вставить свои 5 копеек ))
Паттерны РЕАЛЬНО могут пригодиться в проектах только с определенной направленностью и сложностью.
Думаю нужно тщательно погуглить - где именно они применяются.
Затем поставить себе аналогичную задачу. А уже затем попытаться решить ее используя паттерны, отшлифовывая код до собственного идеала.
Как пример - "велосипед" - своя CMS (или framework). Можно подглядывать в Laravel, Symfony и т.п.