Modele Projektowania Dla Początkujących

2

Jeśli pisałeś już programy dla produktów lub aplikacji, dużych/małych, najprawdopodobniej korzystałeś z wielu wzorców projektowych… chociaż możliwe jest, że nie będą one jednymi z najczęściej używanych/standardowych wzorców projektowych.

Ale tak, istnieje oczywista różnica między wdrożeniem wzorca projektowego a „używaniem" wzorca projektowego… tak czy inaczej, osoba pracująca z wzorcami projektowymi rozumie to lub zrozumie to z łatwością.

Chodzi o to, że wzorce projektowe nie są nowością dla programistów.

W poniższym artykule staram się wyjaśnić wzorce projektowe w ich podstawach, a szczegóły różnych wzorców, przykłady itp. przestudiujemy w innym artykule.

Co to jest wzorzec projektowy?

Aby rozpocząć…

Myślę, że najlepszym sposobem na rozpoczęcie zrozumienia wzorców projektowych jest zrozumienie nietechnicznych wzorców, którymi świadomie/nieświadomie podążamy w naszym codziennym życiu.

Weźmy na przykład wiele życiorysów przesłanych na wolne stanowisko pracy. Życiorysy wszystkich nie wyglądają tak samo… chociaż wszyscy mają tendencję do robienia tego samego, czyli mówienia czytelnikowi, w czym są utalentowani lub jak mogą nadawać się na to stanowisko.

Większość z nich, którzy przesyłają CV do pracy, wie, że musi przesłać CV z określonym zestawem informacji w sformatowanym dokumencie Word.

To… jest schemat, że każdy składa CV z określonym zestawem informacji w nim wyrażonych.

Jeśli masz ochotę… nazwij to Szablony zamiast Wzorców. Szablony projektów.

W prawdziwym życiu jest wiele takich rzeczy, które są wzorami. Niektórym podobają się poniższe przykłady:

Wszyscy szefowie kuchni na całym świecie przyrządzają pizzę lub frytki w ten sam sposób. Chociaż mogą to zwieńczyć / posmakować inaczej. To jest wzór.

Konstrukcja każdego samochodu jest zgodna z podstawowym wzorem konstrukcyjnym, czterema kołami, kierownicą, głównym układem napędowym, takim jak pedał hamulca, sprzęgło itp.

Wszystkie rzeczy wielokrotnie budowane/produkowane będą nieuchronnie podążać za wzorcem w swoim projekcie… czy to samochody, pizze, bankomaty, cokolwiek… nawet szczoteczka do zębów.

Projekty, które prawie stały się standardowym sposobem kodowania pewnej logiki/mechanizmu/techniki w oprogramowaniu, stąd są znane jako – i stąd – badane jako Wzorce Projektowania Oprogramowania.

Dlaczego wzorzec projektowy jest ważny?

Zasadniczo z dwóch powodów:

  1. Aby trzymać się standardu
  2. Aby przyspieszyć rozwój

Wyjaśnię szczegółowo.

Po pierwsze, widzimy, dlaczego trzymanie się standardowego wzoru jest interesujące.

Weźmy przykład listy CV, który omówiliśmy wcześniej.

Może być jeden lub dwóch kandydatów, którzy wysyłają swoje podania o pracę w wiadomości e-mail bez odpowiedniego formatowania, bez załączników do wiadomości e-mail itp.. Ci jeden lub dwóch kandydatów nie postępuje według wzorca i prawdopodobnie NIE skończy się z pracą…. Dlaczego? Ponieważ odbiegają od dobrze ugruntowanego wzorca, który może nie spodobać się osobom umieszczającym życiorysy na dane stanowisko.

Czy nie ma nikogo, kto odbiega od schematu i staje się „cool”? Czy to nie innowacja?

Tak, zdarza się, że bardzo różnie przedstawione CV dostaje pracę za to, że różni się od innych. Zwykle słyszałem o projektantach stron internetowych, którzy dostali najlepsze prace, ponieważ skompilowali i zaprezentowali film CD z ich pracą lub stworzyli animowaną postać wyjaśniającą ich pracę, umieścili to na swoim blogu i tym podobne.

Ale… to jest eksperymentowanie (innowacja pochodzi z udanych eksperymentów).

Najczęściej w tworzeniu oprogramowania nie można sobie pozwolić na eksperymentowanie ze względu na presję czasu, oczekiwania itp., Ale tak, czasami niektóre interesujące projekty pozwalają na pewne eksperymenty.

W oprogramowaniu nie możemy wykonać podstawowych rzeczy, takich jak wpłata na konto bankowe… na 101 sposobów… będzie tylko kilka sposobów na przetworzenie wpłaty na konto bankowe… dlatego sensowne jest podążanie za ustalonym i przetestowanym Wzorcem.

Ponadto większość wzorców projektowych ma odmiany… niektóre z nich są tak popularne, że będą one również nowym standardowym typem wzoru.

Obecnie oczekuje się, że projekty oprogramowania (przynajmniej pośrednio) będą zgodne z już ustalonym projektem podobnego produktu/oprogramowania na rynku.

W tym przypadku trzymanie się standardowego stylu kodowania lub wzorca projektowego pomaga w rozwoju oprogramowania… przyspieszenie rozwoju, usunięcie kosztów związanych z martwieniem się o nową, nieprzetestowaną implementację itp.,

Zapinanie czasu rozwoju

Postępowanie zgodnie ze standardowym wzorcem projektowym ma również tę zaletę, że łatwo komunikuje się poprzez drzewo / hierarchię architektów oprogramowania, kierowników modułów, kierowników zespołów, programistów itp., „Jak” coś należy opracować, a nie tylko „co” musi być rozwinięty.

Czasami pomaga nawet zespołom testowym, ponieważ testerzy wiedzą z doświadczenia, że ​​kod zgodny z określonym wzorcem projektowym prawdopodobnie mógłby zostać przetestowany w określony sposób za pomocą zestawu narzędzi testowych w określonym czasie, a takie znane projekty mogą nie mieć żadnych wad lub mieć jakieś „znane” wady.

Czy używanie wzorców projektowych nie odbiera osobistego charakteru?

Nie. Po pierwsze dlatego, że nie mówimy, że postępujesz zgodnie ze wzorcem projektowym i nic więcej się nie dzieje. Większość wdrożeń projektów dzieli tylko podstawowe wymagania z innymi projektami i najprawdopodobniej będą miały odchylenia. Budowanie tych odchyleń będzie wymagało wyginania i rozciągania standardowych wzorców używanych w implementacji.

To tak, jakby robić pizzę w standardowy sposób, a następnie aromatyzować ją / prezentować według różnych wymagań, albo jako pizzę w pełnym cieście, albo w kawałku, czy cokolwiek innego.

W zrozumieniu znaczenia wzorców projektowych jedno jest bardzo ważneważne :

Wzorce projektowe nie są żadną technologią ani strukturą, którą wymusza na nas konkretna firma lub język programowania. Oznacza to, że jest jak otwarty koncept… możesz go swobodnie brać, używać, modyfikować do swoich potrzeb i co ważne… czuć go po swojemu.

Wszystkie standardowe lub popularne wzorce projektowe są w rzeczywistości dość mocno rozszerzalne… stały się popularne, po pierwsze, tylko dlatego, że wielu ludzi ich używa… a wielu ludzi używa ich tylko dlatego, że są elastyczni w stosunku do swoich wymagań.

Lub jak myślisz, jak standardowy wzorzec projektowy pasowałby do projektu w New Jersey dla firmy, a także w Bangalore dla innej firmy i innego rodzaju projektu.

To prowadzi nas do „ większości wzorców projektowych jest ogólnych “… co oznacza, że ​​nie zawsze są one używane do tworzenia oprogramowania tego samego typu. Możesz nie słyszeć takich rzeczy jak „wzorzec projektowy oprogramowania bankowego” lub „wzorzec projektowy oprogramowania sieci społecznościowych” używanych w powszechnych dyskusjach… ale tylko „wzorce projektowe”.

Kto powinien przejmować się wzorcami projektowymi?

  1. Tak jak dobry architekt budynków rozwija swoje umiejętności projektowania budynków, studiując architekturę i projektowanie wielu budynków i kształtów przez całe życie, architekt oprogramowania powinien badać i wizualizować, w jaki sposób projektowane są różne systemy oprogramowania / technologii na całym świecie lub architektoniczny.
  2. I tak jak pracownicy budowlani powinni być świadomi różnych sposobów realizacji projektu budowlanego, czy to z własnego doświadczenia, czy też rozumiejąc go od Architekta Budynku.

Twórcy oprogramowania/programiści powinni rozumieć podstawowe wzorce projektowe oprogramowania i kod ich implementacji… samodzielnie lub od architekta oprogramowania, który instruuje zespół, aby opracował je zgodnie z określonym wzorcem.

Podstawowe wzorce kodu

W początkowych wierszach tego artykułu powiedziałem, że każdy programista użyłby wzorców projektowych. Oto kilka bardzo podstawowych przykładów kodu zgodnego ze wzorcem.

  1. Poniżej przedstawiono podstawowy wzorzec projektowy filtra przechwytującego .

  2. Ukryj kopiuj kod

  3. switch (condition){
         case Value1:
         case Value2:
         default:
    }
  4. Wyzwalacze zdarzeń, moduły obsługi zdarzeń… wchodzą w skład podstawowego wzorca projektowego podmiot-obserwator . Omówimy standardy każdego wzoru, popularne odmiany, wraz z przykładami.. wkrótce.

  5. Jeśli korzystałeś z jakiejś kolekcji, takiej jak Arraylist w języku C#, i przeglądałeś tablicę, to używałeś podstawowego wzorca projektowego Iterator .

  6. Poniższy kod jest przykładem podstawowego wzorca obsługi wyjątków/ łańcucha odpowiedzialności .

  7. Ukryj kopiuj kod

  8. try{
    }catch(Exception ex){
    }
    finally{
    }

Różne obszary wzorców projektowych

Istnieją różne terminologie w oprogramowaniu inne niż wzorce projektowe… niektóre z nich często dotyczą wzorców projektowych, o których do tej pory mówiliśmy… a niektóre z nich są całkowicie niezwiązane.

To, co do tej pory omówiliśmy powyżej, jest czasem nazywane „ wzorcami projektowymi implementacji “.

Istnieją inne, takie jak wzorce architektury, wzorce ramowe, wzorce językowe (głównie nazywane konstrukcjami językowymi).

Są to wzorce ułożone na różnych poziomach… np. wzorce językowe to wzorce zaimplementowane jako część języków programowania, takich jak C# / Java, jako cechy/konstrukcje języka… niektóre z nich już widzieliśmy.

Wszystkie powyższe przykłady podmiotu-obserwatora, filtra przechwytującego itp. są wchłaniane jako konstrukcje językowe we wszystkich popularnych językach programowania wysokiego poziomu, które pojawiły się po C.

Wzorce architektury to standardowe modele architektury oprogramowania, zwykle odnoszące się do różnych metod umieszczania lub łączenia modułów, warstw lub warstw, tworzących pełną aplikację.

Jest to całkowicie niezwiązane z wzorcami projektowymi w sensie kodowania/programowania, które… ale mają te same odpowiedzi na pytania Dlaczego / Co omówiono w tym artykule.

Wzorce ramowe są również niezwiązane z naszą dyskusją na temat wzorców projektowych. Gdy frameworki, takie jak .NET, implementują specjalne środki do rejestrowania błędów lub śledzenia tras wykonywania kodu za pomocą wbudowanych metod lub obiektów frameworka, takie mechanizmy są określane jako wzorce Framework.

Niektóre przykłady w .NET Framework obejmują funkcję stackTrace, funkcję atrybutu klasy z [] nawiasami kwadratowymi na górze definicji klas/metod itp. Podczas korzystania z takich funkcji kodujemy za pomocą wbudowanych wzorców Framework.

Mam nadzieję, że ten artykuł pomoże w omówieniu wzorców projektowych i związanych z nimi terminologii.

Do tej pory omawialiśmy tylko, czym są standardy i jak ważne są… ale nie omawialiśmy, jakie są same standardowe wzorce.

Licencja

Ten artykuł, wraz z powiązanym kodem źródłowym i plikami, jest objęty licencją The Code Project Open License (CPOL).

Comments are closed, but trackbacks and pingbacks are open.

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów