Programowanie funkcyjne x Programowanie obiektowe

Dec 11 2022
Mamy kilka stylów kodowania zwanych paradygmatami. Jednym z nich jest programowanie funkcyjne (FP) i programowanie obiektowe (OOP).

Mamy kilka stylów kodowania zwanych paradygmatami . Jednym z nich jest programowanie funkcyjne (FP) i programowanie obiektowe (OOP). Te dwa style kodowania są najbardziej znane i na pewno raz w życiu jako programista będziesz musiał opisać różnicę między nimi. Więc chodźmy!

Programowanie funkcjonalne

Tutaj używamy wielu funkcji i zmiennych. W FP oddzielamy dane i funkcjonalności i przekazujemy dane do funkcji tylko wtedy, gdy chcemy coś obliczyć. Oznacza to, że używamy wartości zwracanych przez te funkcje w innym miejscu kodu.

Poniżej mamy przykład pokazujący styl kodu FP. Zauważ, że oddzielamy funkcję od danych i wartość zwracaną przez funkcję, której używamy do pocieszenia widza.

function getArea(a, b) {
    return a * b
}
var a = 2;
var b = 5;
var area = getArea(a, b);

console.log(area); // <= Use Here!

Tutaj dane i funkcjonalności grupujemy jako właściwości i metody wewnątrz obiektów (stąd nazwa „obiektowe”). Jest to bardzo pomocne, gdy chcemy budować modele rzeczywistych obiektów, ponieważ możemy grupować właściwości i dane, które razem mają logiczny sens.

Zobaczmy teraz, jak zbudować psa przy użyciu kodu w stylu OOP:

var dog = {
    legs: 4,
    sleepy: true,
    bark: function(){
      if(this.sleepy){
        console.log('Woof, Woof');
      } else {
         console.log('Zzzzz');
      }
    },
    nap: function() {
        this.sleepy = false
    }
}
console.log(dog.sleepy) // true
dog.bark(); // Woof, Woof
dog.nap();
console.log(dog.sleepy) // false
dog.bark(); //Zzzzz

Programowanie funkcyjne x Programowanie obiektowe

Oczywiście te dwa odrębne style mają wiele koncepcji i zasad, ale tutaj skupiłem się tylko na głównej różnicy między nimi, abyś mógł mieć ogólny zarys i być gotowym do szybkiej odpowiedzi, gdy zostaniesz o to zapytany.

Podsumowując, możemy powiedzieć, że paradygmat programowania funkcjonalnego polega na oddzielaniu danych i funkcjonalności, a programowanie obiektowe polega na grupowaniu danych i funkcji w sensowne obiekty.

Odniesienie

Certyfikat zawodowy Meta Frontend Developer — (Kurs 2) — Dostępny na Coursera.