Wzorce projektowe: Abstract factory

Wzorzec Abstract Factory jest bardzo bliskim krewnym wzroca Factory Method. Oba wzroce należą do grupy wzorców konstrukcyjnych – jedyna różnica między nimi jest taka, że Factory method tworzy jeden obiekt, a abstract factory całą grupę powiązanyc obiektów. W opisie wzorca factory method tworzyliśmy Napoje : Wino, Piwo, Kawa lub Woda. Nie było zdefiniowane więcej szczegółów. Jednakże w naszej alikacji potrzbujemy czegoś więcej. Każdy napój powinien byc podany w odpowiednim naczyniu (Kufel, Kieliszek, Kubek lub Szklanka) oraz z odpowiednim dodatkiem ( Ser do Wina, Sernik do Kawy, Orzeszki do Piwa). W takiej sytuacji najlepiej wykorzystać wzorzec abstract factory. Tworzymy interfejsy Dodatek oraz Szkło i klasy implementujące te interfejsy do wykorzystania w naszej fabryce. Następnie abstrakcyjną klasę bazową w której umieścimy ogólne metody naszej implementacji. Oraz utworzymy klasę pochodną w której umieścimy wszystkie szczegóły tworzenie grupy obiektu. […]

By | Luty 2nd, 2009|Categories: Wzorce Projektowe|Tags: , , |Możliwość komentowania Wzorce projektowe: Abstract factory została wyłączona

Wzorce projektowe: Simple Factory

Simple Factory (Prosta fabryka) nie jest przez wszystkich uważany za wzorzec projektowy. Jednak jest tak często używany, że warty odrobiny uwagi. Simple factory jest jednym z wzorców konstrukcyjnych, których zadaniem jest tworzenie obiektów. Wzorzec ten charakteryzuje się tym, że caly proces decyzyjny i konstrukcyjny jest w jednej metodzie. Dla przykładu mamy klasy kilku napojów: Kawa, Herbata, Wino, Piwo i Woda. Wszystkie implementują interface Napój. Klasa NapójFactory utworzony zgodnie z powyższym wzorcem może wyglądać tak:

[…]

By | Styczeń 30th, 2009|Categories: Wzorce Projektowe|Tags: , , |Możliwość komentowania Wzorce projektowe: Simple Factory została wyłączona

Wzorce projektowe: Strategia

Strategia jest czynnościowym wzorcem obiektowym. Wzorzec składa się z wielu związanych ze sobą algorytmów ukrytych wewnątrz klasy sterującej zwanej Context. Program klienta może wybrać jeden z tych algorytmów lub najodpowiedniejszy z nich. Intencją wzorca jest wymienność algorytmów w trakcie działania programu oraz ich hermetyzacja. Bardzo łatwo dodaje się nowe algorytmy, poprzez utworzenie nowej klasy implementującej dany interfejs. Conext może w danej chwili mieć wybraną tylko jedną strategię. Kiedy to może mieć zastosowanie: naliczanie podatku w sklepie zależnie od kraju zamieszkania kupującego, Kompresowanie plików z wykorzystaniem różnych algorymtów, Zapisywanie plików w różnych formatach. […]

By | Styczeń 27th, 2009|Categories: Wzorce Projektowe|Tags: , , , |Możliwość komentowania Wzorce projektowe: Strategia została wyłączona

Wzorce projektowe: Adapter

Adapter jest wzorcem, którego zadaniem jest konwersja jednego inteface’u w drugi, co pozwoli na wykorzystanie klasy adaptowanej tam, gdzie nie zostało to pierwotnie założone. Wyobraźmy sobie, że kupujemy nowy monitor. Okazuje się, że monitor ma kabel który nie pasuje do naszej karty graficznej. Pierwszym skojarzeniem jest użycie odpowiedniej ‚przejściówki’ co pozwoli na podłączenie wtyczki nowego typu do gniazda starego typu. Tak działa właśnie adapter. Przykład: Posiadamy program pilota, który steruje całym naszym sprzętem w domu m.in. telewizorem. Oto kod pilota i interfejsu telewizora:

[…]

By | Styczeń 26th, 2009|Categories: Wzorce Projektowe|Tags: , , |Możliwość komentowania Wzorce projektowe: Adapter została wyłączona

Przypomnienie podstaw UML

W notacji UML klasa jest przedstawiona jako prostokąt podzielony na trzy części. W pierwszej części podana jest nazwa klasy i czasami package. W drugiej części podane są pola czyli atrybuty klasy. W ostatniej znajduje się lista operacji (metod). […]

By | Styczeń 22nd, 2009|Categories: Programowanie|Tags: , , , |Możliwość komentowania Przypomnienie podstaw UML została wyłączona

Plan rozbudowy Warszawy i coś jeszcze…

[…]

By | Styczeń 16th, 2009|Categories: MiszMasz|Możliwość komentowania Plan rozbudowy Warszawy i coś jeszcze… została wyłączona

Plany na rok 2009

Zeszłoroczne plany zrealizowałem z około 70%, więc nie jest tak źle. Na ten rok też sobie kilka rzeczy postanowiłem i będę dążył do ich realizacji. Z zawodowych planów na pierwszym miejscu są Design Patterns i TestNG. Chcę pisać czysty kod i pokrywać go testami co najmniej w 90% ( o ile się da oczywiście). Będzie [...]

By | Styczeń 13th, 2009|Categories: MiszMasz|Możliwość komentowania Plany na rok 2009 została wyłączona

Dreszczyk na plecach

That is not dead which can eternal lie Yet with strange aeons even death may die* Gdy byłem nastolatkiem połykałem książki jak bułki. Potrafiłem przeczytać 2-3 tygodniowo, skupiałem się głownie na sci-fi i horrorach, ale inne gatunki też nie były mi obce. Pewnego dnia przytrekałem z biblioteki kolejny horror. Zacząłem czytać. Po kilkunadtu stronach stwierdziłem, że to zwykłe pisadło, ale jak już zacząłem to skończę. […]

By | Grudzień 12th, 2008|Categories: MiszMasz|Możliwość komentowania Dreszczyk na plecach została wyłączona

960gs – praktyczne zastosowanie

Jak obiecałem w poprzednim artykule pokażę jak praktycznie można wykorzystać framework 960gs. Do tego celu będę się wzorował na layoucie witryny wordpress.org . […]

By | Grudzień 5th, 2008|Categories: Webdevelopment|Tags: , |Możliwość komentowania 960gs – praktyczne zastosowanie została wyłączona

960 grid system

Kilkanaście miesięcy temu, podczas przeszukiwania sieci, natrafiłem na framework CSS o nazwie 960 grid system. Był on wtedy w fazie beta i zgodnie z komentarzami autorów – nie wszystko działało jak powinno. Kilka dni temu, gdy przyjąłem zlecenie na przerobienie pliku .psd na szablon .xhtml przypomniałem sobie o tym narzędziu. Zapytałem wujka google’a o adres, pobrałem kilkubajtowy plik, zerknąłem na przykład, rzuciłem okiem na plik .css, zrobiłem kilka poprawek w .psd i po kilkunastu minutach wielokolumnowy szablon był gotowy. […]

By | Grudzień 2nd, 2008|Categories: Webdevelopment|Tags: , |Możliwość komentowania 960 grid system została wyłączona