Patrząc na pytanie, które zadałeś w widoku kodu, jesteś na etapie przesadzania. Myślę, że jest to dość powszechny problem wśród ludzi, którzy odkrywają znaczenie dobrego projektowania.
W rzeczywistości jest to naturalny i prawdopodobnie nawet niezbędny krok przy każdej umiejętności, którą podnosisz. Gdy zaczniesz się czegoś uczyć, im bardziej posiądziesz wiedzę na temat umiejętności i im bardziej ją zastosujesz, tym lepsze wyniki i wydaje się, że zmierzałeś prosto do mistrzostwa. Problem polega na tym, że Twoim nowym celem nie jest jakość wyników, ale ilość wiedzy, którą zgromadziłeś na temat swoich umiejętności.
Prawdziwe opanowanie umiejętności wymaga zrozumienia, kiedy jej użyć, a kiedy nie. Nadużywanie tej umiejętności jest prawdopodobnie jedynym sposobem na rozwinięcie takiego zrozumienia. Jasne, możesz o tym przeczytać, ale czytanie nie zastąpi doświadczenia.
Po pierwsze, czytanie o wzorach projektowych to zły początek IMHO. Lepsze jest czytanie o zasadach projektowania OO, takich jak SOLID i GRASP . Po zapoznaniu się z nimi dobrym pomysłem jest przestudiowanie typowych wzorców projektowych, ponieważ zobaczysz, w jaki sposób można zastosować te zasady do tworzenia konkretnych idiomów.
Twierdzi się, że kiedy pojawiają się wzorce w użyciu języka, język faktycznie nie ma żadnej cechy. Chociaż to stwierdzenie jest bardzo radykalne, jest w nim wiele prawdy. Dlatego proponuję, abyś spojrzał na inne języki i bawił się nimi, aby lepiej zrozumieć koncepcje, które chcesz zastosować, a także poznać nowe koncepcje. Krótka lista to Squeak, Ruby i Lisp.
Jeśli chodzi o Listę, moją osobistą rekomendacją jest Struktura i interpretacja programów komputerowych , która nauczyła mnie wiele o projektowaniu, pokazując mi, jak bez wysiłku można tworzyć solidne rozwiązania złożonych problemów, z niewiele więcej niż wyraźną abstrakcją i (de) kompozycją w sposób odgórny.
Oto, co sugeruję:
- napisz kod (i spróbuj zrozumieć, co czyni go złym)
- przeczytaj kod (i spróbuj zrozumieć, co czyni go dobrym)
- wymieniać wiedzę z innymi ludźmi. przetestuj swoje pomysły.