4 принципа ООП (часть 4). Абстракция

Абстракция — это когда мы сосредотачиваемся только на существенных для задачи деталях и игнорируем всё остальное. Для каждого объекта мы задаём минимальное количество методов, полей и описаний, которые позволят нам решить задачу. Чем меньше характеристик, тем лучше абстракция, но ключевые характеристики убирать нельзя.

Абстракция — это использование только определения характеристик объекта, без описания их конкретных/детальных реализаций. Основная идея состоит в том, чтобы представить объект обладающим набором методов и при этом не предоставлять конкретную логику этих методов. Простыми словами, абстракция отвечает на вопрос «Что?», без ответа на вопрос «Как?».

Особенность абстрактных классов в том, что их можно наследовать, но нельзя реализовать (создать объект), так как эти классы – базовые. Такие свойства используют для объединения нескольких классов, похожих между собой. 

Чтобы работать с абстракциями, используют как правило интерфейсы.

Пример абстракции на языке PHP:

interface Filesystem
{
    public function createFile();
    public function deleteFile();
}

// Каждый класс реализует методы интерфейса

class LocalStorage implements Filesystem
{
    public function createFile()
    {
        // ...
    }
    public function deleteFile()
    {
        // ...
    }
}

class AmazonStorage implements Filesystem
{
    public function createFile()
    {
        // ...
    }
    public function deleteFile()
    {
        // ...
    }
}
Запись опубликована в рубрике Это база с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий