• Зачем нужны абстрактные классы и интерфейсы в php?

    php666
    @php666
    PHP-макака
    так яснее?

    интерфейс гуманоид (декларация человекоподобного существа и декларация его базовых методов - идти, бежать, думать, размножаться)
    
    -> абстрактный класс человек (имеет реализацию задекларированных в интерфейсе методов, имеет общую реализацию)
     -->  конкретный класс человек мужчина (частности реализации)
     -->  конкретный класс человек женщина (частности реализации)
    
    -> абстрактный класс инопланетянин (имеет реализацию задекларированных в интерфейсе методов, имеет общую реализацию)
     -->  конкретный класс инопланетянин мужчина (частности реализации)
     -->  конкретный класс инопланетянин женщина (частности реализации)


    Если ты был бы создателем, тебе потребовалась именно эта структура для создания гуманоидо-образного существа (две руки, две ноги, голова, прямоходящий, два глаза - это ИНТЕРФЕЙС - декларация, что все классы будут имплементировать это соглашение).

    Человек не может наследоваться от инопланетянина, как и наоборот - это РАЗНЫЕ формы жизни. Одна построена на углеродной форме (человек), другая, скажем, на базе метаногенов. Но общее их - интерфейс ГУМАНОИД, созданный "по образу и подобию" (с).

    Для этих двух разных типов мы создаем базовые АБСТРАКТНЫЕ классы (ибо ни человек, ни инопланетянин, с нашей точки зрения, как создателя, не может быть неопределенного пола). В абстрактных классах мы реализуем методы, которые задекларированы в нашем интерфейсе. Мы наполняем абстрактные классы свойствами и всеми методами, присущими обоим полам наших творений, ведь между мужчиной и женщиной очень много общего в строении.

    Конкретные классы уже являются конечными полами двух разных типов форм жизни.

    24301509.jpg
    Ответ написан
    2 комментария
  • Vue. Axios. Скачать (импортировать) компонент внутрь другого компонента по нажатию на кнопку. Как заставить компонент работать?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Плохой ответ: Vue.compile().
    Правильный ответ: работая с Vue(да и не только) ты не должен гонять html-разметку, ты должен гонять данные. За всё оформление должен отвечать фронт. В том числе и каким компонентом отображать какие данные.
    Ответ написан
    Комментировать