Nie szukaj modności
Każde standardowe rozwiązanie programistyczne dla określonego problemu można uznać za wzorzec projektowy, nie ma znaczenia, jak popularne są, ani czy używają ich inni programiści.
Być może korzystasz już z wzorca projektowego, który nie został jeszcze wynaleziony / określony.
Nie próbuj ich używać, spróbuj myśleć na ich warunkach
Problem z wzorami projektowymi polega na tym, że czasami programiści chcą dopasować do nich swoje problemy, gdy jest na odwrót.
Pamiętaj, że konwencja wzorców projektowych ma typowy problem do rozwiązania, możesz nawet łączyć wzorce projektowe w celu rozwiązania innych większych problemów. Jest to typowe w architekturze zorientowanej na usługi, wystarczy zobaczyć niektóre wzorce SOA .
Szukaj ich na wolności
Istnieje wiele projektów typu open source, w których można znaleźć zastosowane wzorce projektowe. Jednym z przykładów, który przychodzi mi na myśl, jest Joomla: znajdziesz singletonów , obserwatorów . Biblioteki GUI będą miały wzorzec dekoratora , zaimplementowany wzorzec poleceń , a może nawet wagę .
Istnieją inne wzorce, takie jak wzorce danych, na przykład użył sam projekt Doctrine, wzorzec aktywnego zapisu (1.x), wzorzec menedżera encji (2.x), jednostka pracy , repozytorium , obiekt zapytania , odwzorowanie metadanych , dane mapowanie i inne bardziej ogólne, takie jak wzorzec strategii i wzorzec dekoratora .
Jest tak wiele interesujących rozwiązań do wyboru. Zobacz wzorce architektury korporacyjnej Martina Fowlera , są też wzorce modeli danych .
Naucz się ich, gdy nadejdzie czas
Naucz się ich, poznaj ich, obsesję na ich punkcie, a kiedy nadejdzie czas, będziesz wiedział, jak rozwiązać problem programistyczny x, do tego czasu będziesz już lepszym programistą.
Zostań architektem
Powiedziałbym, że umiejętność myślenia w kategoriach rozwiązywania problemów skutecznie zmienia cię w architekta oprogramowania . Nawet jeśli nie chcesz być architektem oprogramowania, Twoje rozwiązania będą miały domyślnie wyższą jakość techniczną, będą czystsze i będą lepiej skalowane - pod względem projektowym -.