oop

php wzorzec obserwator

Wzorzec projektowy – Obserwator

Wzorzec Obserwator (ang. Observer) używany jest do powiadamiania wybranych obiektów o zmianie stanu innych obiektów. Dzięki zastosowaniu tego wzorca można odizolować od siebie obiekty tak, że nie są one ze sobą sztywno powiązane. Zgodnie z poniższym diagramem we wzorcu występują dwa podstawowe typy obiektów (interfejsy): obserwowany – obiekt, który jest śledzony; kiedy zmieni się jego …

Wzorzec projektowy – Obserwator Read More »

php wzorzec strategia

Wzorzec projektowy – Strategia

Wzorzec Strategia definiuje grupę algorytmów, które mogą być stosowane wymiennie w trakcie działania programu. Interfejs wzorca określa zadania (operacje), które implementują konkretne strategie (KonkretnaStrategiaA, KonkretnaStrategiaB, …). Klasa Kontekst ustawia referencję do interfejsu Strategia oraz implementuje metodę kontekstu, która umożliwia dynamiczną zmianę używanej strategii. PRZYKŁAD W przykładzie wykorzystam strategie do zmiany formatowania wyświetlanego tekstu (duże litery, …

Wzorzec projektowy – Strategia Read More »

wzorzec proxy php

Wzorzec projektowy – Proxy

Wzorzec Proxy kontroluje dostęp do klas i obiektów jako pośrednik. Zanim żądanie trafi do prawdziwego podmiotu RealSubject, pośrednik Proxy przetwarza je i jeśli spełnione są odpowiednie kryteria to udostępnia obiekt. Klient nie wie, że jego żądanie przechodzi przez Proxy. Przykładem może być dostęp poprzez logowanie do określonych zasobów serwisu. SCHEMAT WZORCA PROXY Źródło: en.wikipedia.org/wiki/Proxy_pattern PRZYKŁAD …

Wzorzec projektowy – Proxy Read More »

php wzorzec projektowy stan

Wzorzec projektowy – Stan

Wzorzec Stan umożliwia zmianę zachowania obiektu, kiedy zmianie ulegnie jego wewnętrzny stan. Wzorzec ten jest bardzo użyteczny i występuje praktycznie wszędzie. Przykładem z życia może być np: przełącznik światła, który posiada dwa stany: włączony (ON) i wyłączony (OFF). Dla przykładu zbudujemy taki minimalistyczny przełącznik 🙂 Pierwsza klasa stanu – State, jest abstrakcyjna i posiada również …

Wzorzec projektowy – Stan Read More »

metoda szablonowa

Wzorzec projektowy – Metoda Szablonowa

Wzorzec Metoda Szablonowa definiuje konkretną metodę templateMethod(), która implementuje metody abstrakcyjne w określonej kolejności. Sekwencja operacji (method1(), method2() …) stanowi szkielet danego algorytmu. Konkretna klasa (ConcreteClass) dziedziczy po klasie abstrakcyjnej (AbstractClass) metody abstrakcyjne i nadaje im konkretne funkcjonalności. Źródło: pl.wikipedia.org/wiki/Metoda_szablonowa_(wzorzec_projektowy) PRZYKŁAD Dobrym przykładem będzie użycie wzorca do wyświetlenia szablonu strony internetowej. Struktura dokumentu HTML jest …

Wzorzec projektowy – Metoda Szablonowa Read More »

dekorator

Wzorzec projektowy – Dekorator

Wzorzec Dekorator zalicza się do strukturalnych wzorców projektowych i pozwala rozbudować istniejącą strukturę o nowe funkcjonalności, które nie wpłyną na inne obiekty (komponenty). Można w pewnym sensie porównać go do dziedziczenia, z tym, że zapewnia większą elastyczność. Poza tym dodaje funkcjonalności do klas w sposób dynamiczny, podczas działania programu. Przykładem wzorca może być dekoracja wnętrza …

Wzorzec projektowy – Dekorator Read More »

php wzorce projektowe - adapter

Wzorzec projektowy – Adapter

Wzorzec Adapter zalicza się do strukturalnych wzorców projektowych i pozwala zintegrować ze sobą niekompatybilne systemy, nie naruszając przy tym istniejącej struktury, np: zewnętrzne biblioteki dołączane do programu, nie zgodność wersji platformy programistycznej (frameworka) z danym modułem, interfejsem itp. Wzorzec ten występuje w dwóch wariantach. Implementacja może odbywać się z wykorzystaniem dziedziczenia lub kompozycji. Ja skupię …

Wzorzec projektowy – Adapter Read More »

PHP

Klasy abstrakcyjne

Klasa abstrakcyjna to klasa, której obiekty nie mogą być tworzone za pomocą operatora new, czyli nie można tworzyć ich instancji: $obiekt = new Obiekt() Klasa abstrakcyjna – nadrzędna – stanowi pewien wzorzec dla klas potomnych, które dziedziczą jej mechanizmy tworząc elastyczniejsze podejście do pisania programów. Klasę abstrakcyjną deklarujemy modyfikatorem abstract:

Implementacja klasy abstrakcyjnej w …

Klasy abstrakcyjne Read More »