Wzorzec singleton należy do wzorców konstrukcyjnych. Służy on do ograniczania możliwości tworzenia obiektów danej klasy do jednej instancji oraz zapewniania globalnego punktu dostępu do niej. Wzorzec ten jest krytykowany ze względu na zbyt częste traktowanie go jako zamiennika dla zmiennych globalnych powszechnie uznawanych za niekorzystne.

Wzorzec decorator należy do wzorców strukturalnych. W praktyce umożliwia dynamiczne dodawanie nowych funkcji do istniejących klas bez ich fizycznej modyfikacji. Dzięki temu można rozszerzyć możliwości klasy bez ingerowania w jej kod pozostawiając jej oryginalną funkcjonalność.
Aby pokazać działanie wzorca decorator posłużę się prostym przykładem.

Wzorzec observer należy do wzorców czynnościowych. W praktyce umożliwia on powiadamianie obiektów (obserwatorów) o zmianie danych obiektu czy klasy centralnej (obserwowanej) dając możliwość wielokrotnego wykorzystywania klas bez zbędnych modyfikacji ich kodu czyniąc go przy tym czytelniejszym i bardziej przejrzystym.
Na prostym przykładzie chciałbym pokazać jego implementację i zalety.

Specyfikacja obiektowego modelu dokumentu W3C DOM wprowadza nowoczesny sposób obsługi zdarzeń. Niestety model ten nie jest dostępny w przeglądarce Internet Explorer (nawet w najnowszych wersjach) i aby go wykorzystać należy dodać alternatywny sposób jego obsługi.
Chciałbym przedstawić uniwersalny sposób implementacji nowoczesnej obsługi zdarzeń.

Podczas tworzenia stron często zachodzi potrzeba przetestowania ich działania w różnych przeglądarkach. O ile w przypadku przeglądarek innych niż Internet Explorer nie jest to problemem bo można zainstalować dowolną ilość ich wersji to w przypadku wspomnianego Internet Explorera nie da się tego osiągnąć w standardowy sposób. Istnieje jednak wygodny sposób instalacji wielu wersji przeglądarki IE naraz.

Zarówno przeglądarka Firefox 2 jak i Internet Explorer umożliwiają skorzystanie z wbudowanego mechanizmu cache, który pozwala na trwałe przechowywanie danych po stronie klienta i ich odczyt nawet po ponownym otwarciu przeglądarki. Dzięki temu zyskujemy możliwość zapisywania stosunkowo dużej ilości danych po stronie klienta i ich wielokrotne wykorzystywane.

Natchniony artykułem “Własne Google Video, czyli video streaming w PHP” w magazynie PHP Solutions 5/2006 (16) postanowiłem stworzyć prosty system na wzór google video, który umożliwi wygodne udostępnianie filmów i muzyki niezależnie od jego formatu.