PHP/ООП
Dependency Injection простыми словами

Dependency Injection простыми словами

20-12-2021PHP/ООП
В продолжение предыдущей статьи Читать
Понимание ООП на примере Паскаля

Понимание ООП на примере Паскаля

05-06-2020PHP/ООП
В продолжении предыдущей темы, что база программирования важнее самого языка, покажу на примере Turbo Pascal 7.0, что такое объекты в объектно-ориентированном программировании. (Чтобы было понятно, ООП в Паскале появился в 1989 году в версии TP 5.5.) Читать
Dependency injection (внедрение зависимости)

Dependency injection (внедрение зависимости)

20-11-2019PHP/ООП
Dependency injection (внедрение зависимости) — одна из самых загадочных и запутанных тем для программистов. С одной стороны DI можно описать конкретным php-кодом, но потом выяснится, что он повторяет существующий паттерн программирования. И тогда мы начинаем пускаться в абстракцию, пытаясь хоть как-то объяснить принципиальные различия. Читать
Шаблон «Template method» (Шаблонный метод)

Шаблон «Template method» (Шаблонный метод)

08-11-2019PHP/ООП
Основное назначение Template method — выделить из основного класса какие-то операции, которые могут быть выполнены классами-наследниками. Читать
Шаблон Proxy (Заместитель)

Шаблон Proxy (Заместитель)

07-11-2019PHP/ООП
Шаблон Proxy достаточно точно отражает назначение в своём названии — заменять обращения к реальному классу через посредника. Proxy-класс ещё иногда называют контейнером. Читать
Шаблон Flyweight (Приспособленец)

Шаблон Flyweight (Приспособленец)

07-11-2019PHP/ООП
Приспособленец — структурный шаблон проектирования, который позволяет получать доступ к объектам предотвращая их повторное инстанцирование. Flyweight имеет смысл при работе с множеством мелких однотипных классов, к которым удобно обращаться через единую точку входа. Читать
Шаблон Decorator (Декоратор)

Шаблон Decorator (Декоратор)

04-11-2019PHP/ООП
Шаблон Decorator используется там, где нужно расширить функциональность существующего класса. Например вы делаете сайт, где используется какой-то компонент (блок, виджет и т.д.). За это отвечает класс компонента. Потом выясняется, что нужно сделать ещё один компонент для другого вывода. Поскольку все компоненты основаны на одном интерфейсе (или абстрактном классе), то проблем нет. И в какой-то момент, вдруг выясняется, что все компоненты должны поддерживать какую-то новую функциональность, например вывод блока оформления до и после самого компонента. Читать
Шаблон Bridge (Мост)

Шаблон Bridge (Мост)

04-11-2019PHP/ООП
Паттерн Bridge представляет собой возможность объединения двух разных интерфейсов так, чтобы каждый из них развивался раздельно. Чтобы понять его назначение, проще всего объяснить на примере Java. Читать
Шаблон Prototype (Прототип)

Шаблон Prototype (Прототип)

03-11-2019PHP/ООП
Прототип — порождающий шаблон проектирования. Он используется для клонирования существующего объекта, вместо его инстанцирования с помощью new. Нам повезло, что в PHP уже есть всё необходимое для Prototype — это языковая конструкция clone, которая позволяет упростить реализацию праттерна до одной строчки. Читать
Шаблон Observer (Наблюдатель)

Шаблон Observer (Наблюдатель)

02-11-2019PHP/ООП
Поведенческий шаблон Наблюдатель реализует механизм, с момощью которого один класс может уведомлять другие о своём изменении. Практическая реализация кода может быть разной, но в PHP уже существуют готовые стандартные интерфейсы SplSubject, SplObjectStorage и SplObserver, на которых и принято реализовывать паттерн Observer. Читать