ООП и паттерны Flashcards

1
Q

Основные принципы ООП - инкапсуляция, наследование и полиморфизм. Как
их можно использовать?

A
  • Инкапсуляция - принцип, когда класс скрывает в себе логику работы с данными и сами данные, выставляя наружу только публичные методы.
    (ограничение доступа одних компонентов к другим)

Делая свойство приватным, предотвращаем изменение его значения не через set метод.

  • Наследование - принцип, при котором один класс(наследник) переиспользует все поля и методы другого класса(суперкласс).

Применить можно для однотипных сущностей, наследуясь от абстрактной.

  • Полиморфизм - принцип, предполагающий взаимозаменяемость объектов с одинаковым интерфейсом

Язык PHP поддерживает полиморфизм в том смысле, что позволяет использовать вместо экземпляров родительского класса экземпляры подкласса.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Что такое namespace и для чего он служит? Как ими пользоваться?
A

Один из способов инкапсуляции элементов.
Делает разрешимыми конфликты имен между вашим кодом и внутренними или сторонними классами.
Хотя любой корректный PHP-код может находиться внутри пространства имен, только классы (включая абстрактные и трейты), интерфейсы, функции и константы зависят от него.

Пространства имен объявляются с помощью зарезервированного слова namespace. Файл, содержащий пространство имен, должен содержать его объявление в начале перед любым другим кодом, кроме зарезервированного слова declare.
use импорт классов из других namespace
as создание псевдонима

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Что такое абстрактные классы и интерфейсы? Зачем они нужны?
A

Абстрактный класс предстовляет собой каркас для наследования других сущностей, у него не может быть объектов, все абстрактные методы должны быть определены в дочерних классах.
Интерфейс - класс, по сути являющийся контрактом, который должны выполнить реализующие его классы, преобретая тем самым взаимозаменяемость, содержит только сигнатуры методов.
Интерфейс описывает поведение.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

a. В каких случаях следует использовать интерфейсы?

A

Интерфейсы стоит создавать когда есть общая задача и несколько вариантов ее решения, применяемых в зависимости от ситуации

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

b. Что такое трейты? Для чего они нужны?

A

Трейты - механиз обеспечения повторного использования кода в языках с поддержкой только одиночного наследования.
Трейты похожи на абстрактные классы. Они реализуют какую-то общую функциональность и с ними нельзя работать напрямую. Единственный способ использовать их – включение в другие классы.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Что такое магические методы? Для чего они нужны? Примеры.
A

Зарезервированные методы, начинающиеся с двойного подчеркивания, могут вызываться при совершении какого-то действия автоматически.
__get, __set, __isset, __unset
Они позволяют определить, каким образом будут взаимодействовать извне со свойствами, объявленными с модификатором доступа private или protected, либо вообще отсутствующими у объекта.
Метод __construct() автоматически вызывается, когда был создан экземпляр объекта. В нем вы можете задать начальные свойства объекта или установить зависимости.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly