Justinaus Blog

OOP

Class

객체를 생성하기 위한 템플릿. Class는 사실 특별한 함수이다.

OOP

물체 중심의 프로그래밍 (관점). 사람이 물체를 인지하는 방식을 프로그래밍에 적용.

이 관점에 대한 반대

// 기능과 상태가 같이 있다.
class Heater {
    temperature = 0;

    turnsUp() {
        this.temperature += 1;
    }

    getTemperature() {
        return this.temperature;
    }
}
const heater = new Heater();

heater.turnsUp();

console.log(heater.getTemperature());

특징

  • interface
  • 다형성
  • 상속/합성
  • 등..

장점이자 주의점

우리 뇌가 이해하기 쉬우려고 물체 관점으로 가는건데, 상속이 깊어지고 과하게 추상화하고 해서 이해가 어렵게 하지 말자.

포프TV OOP

Functional Programming

순수 함수들을 조합해서 프로그램을 디자인.

add(x, y) {
    return x + y;
}

불변성

상태를 immutable로 만들어 side effect 차단.

Functional Programming

객체지향의 사실과 오해

실 세계를 모방하는 게 아니라 새로운 세계를 창조하는 것이다. 역할과 책임, 협력에 대하여 객체를 가지고 설명.


Justinaus

Written by Justinausgithub.com/justinaus