Ответы на вопросы компания MindK на тему OOP

❏ Понимаю в чем суть ООП и его отличия от других подходов в программировании (функционального, процедурного).
ООП нацелено на разделение обязанностей и сокрытие информации

❏ Понимаю, что такое инкапсуляция, наследование и полиморфизм и могу объяснить на примерах.
Инкапсуляция – сокрытие данных ( public private protected )
Наследование – позволяет наследовать значения и методы родительского класса
Полиморфизм – позволяет расширять или изменять дочерний класс

❏ Понимаю, что такое класс в ООП.
Это элемент ПО, описывающий абстрактный тип данных и его частичную или полную реализацию

❏ Понимаю, что такое объект в ООП.
Это отдельный представитель класса, имеющий конкретное состояние и поведение, полностью определяемое классом

❏ Знаю какие бывает модификаторы доступа и их нюансы применения на практике.
public, private, protected

❏ Понимаю, что такое абстрактный класс и могу его реализовать.
Заготовка – методы должны быть определены в классе-потомке

❏ Понимаю, что такое интерфейс и области его применения.
Контракт – какие методы должен реализовывать класс

❏ Понимаю, что такое статический метод, свойство и класс.
Статические метод позволяет обращаться к ним без создания экземпляра класса. Свойства – переменные, которые являются членами класса. Класс — это элемент ПО, описывающий абстрактный тип данных и его частичную или полную реализацию

❏ Понимаю, что такое паттерн программирования и какую проблему он решает.
Паттерны (или шаблоны) проектирования описывают типичные способы решения часто встречающихся проблем при проектировании программ

❏ Знаю, понимаю, и реализовывал хотя бы раз:
❏ Singleton – создание одного инстанса
❏ Factory – используется для создания объектов
❏ Proxy – интерфейс взаимодействия с любым классом, который трудно или невозможно использовать в оригинальном виде
❏ Adapter – позволяет привести нестандартный или неудобный интерфейс какого-то класса в интерфейс, совместимый с вашим кодом
❏ Command Chain – позволяет передавать запросы последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи
❏ Inversion of Control – все зависимости модулей должны строятся на абстракциях этих модулях, а не их конкретных реализациях
❏ DI –  объект, который знает, как создать и настроить экземпляр класса и зависимых от него объектов. Используется для реализации слабосвязанной архитектуры
❏ ServiceLocator – является объектом, предоставляющим всевозможные сервисы (или компоненты), которые могут понадобиться приложению
❏ Prototype – позволяет копировать объекты, не вдаваясь в подробности их реализации
❏ Decorator – Динамически добавляет новую функциональность в экземпляры классов
❏ Observer – наблюдатель для навешивания обработчика на изменения
❏ Builder – интерфейс для производства частей сложного объекта
❏ Register – для реализации централизованного хранения объектов, часто используемых во всем приложении
❏ Mixin/Trait – подмешивание методов

Лучший ресурс по паттернам на мой взгляд https://refactoring.guru/ru/design-patterns/php


❏ Понимаю отличие подхода наследования от композиции.
Наследование – class dodgeClass extends carClass
Композиция – new carClass(new dodgeClass())

❏ Понимаю что такое namespace и их практическое применение.
Разделение пространства имен, для избегания конфликтов названий

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *