• Простой пример одного и того же кода в ООП, функциональном и процедурном стиле?

    @red-barbarian
    не пытайтесь понимать различие между стилями по текстам. )))
    дело в том что различия в парадигмах. различия в том как некий аналитик моделирует предметную область.
    пример
    есть расчет заработной платы
    процедурный подход - считаем отработанные часы, вычисляем сумму по тарифу, вычисляем вычеты, вычисляем налоги, и проч и проч.процедуры состоят из под процедур.
    объектный подход - есть табель, есть тарифная ставка, есть налоги, выплаты, вычеты. Это уже что-то похожее с чем работает бухгалтер. следовательно такой подход в этом случае близок к данной предметной области.
    функциональный - можно представить так. есть поток данных. мы преобразуем в новый поток данных. затем еще преобразуем и т.д. есть часы. сделаем из них сумму , уберем из них вычеты, уберем налоги, снова вычеты ... на выходе получим сумму выплат.
    хотя в примере названия пересекаются, но не факт что сущности в одном подходе появятся и другом. Именно, поэтому не нужно сравнивать одну и туже предметную область в разных подходах.
    Ответ написан
    Комментировать
  • Простой пример одного и того же кода в ООП, функциональном и процедурном стиле?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    (Все это дико не академично, не корректно и воообще, но должно быть понятно):

    Процедурный подход: есть последовательность команд. Каждая из них может содержать последовательность команд.
    возьми_кофемашину();
    налей_воды_в_кофемашину();
    нажми_кнопку();
    подставь_кружку();
    вылей_кофе_в_кружку();
    наслаждайся();


    ФП - акцент на действии. Одни действия влекут за собой другие.
    наслаждайся(
        своим_кофе(
            которое_сделала_кофемашина(
                в_которую_налили_воды())))


    ООП - акцент на объектах. Любое действие совершает конкретный предмет
    есть кофемашина;
    есть кружка;
    есть ты;
    
    ты.имеешь(кружку)
    кофемашина.имеет(кружку)
    кофемашина.поехали();
    ты.возьми_свою_кружку();
    ты.наслаждайся();
    Ответ написан
    2 комментария