Javascript | OOP vs FP

space's pace·2022년 7월 1일
0

Javascript

목록 보기
18/20

OOP
Object Oriented Programming의 약자로써 class와 object에 기반한 프로그래밍 패러다임(디자인 패턴) 이다. 관련된 데이터끼리 묶어서 class를 형성하고 그 안에서 object instance를 만듬으로써 프로그램을 디자인한다.

Imperative (명령형): how to solve
장점
코드의 재사용률을 높이고 코드를 간결하게 함으로써 유지보수가 쉽다.(DRY principle)
데이터를 안전하게 보존할 수 있다.(encapsulation와 abstraction등)
대표적인 언어
C++, Java, Python, Javascript

✨ Features
Encapsulation(캡슐화)
객체의 내부 로직을 감추고 외부에는 상대적으로 안정적인 부분만을 공개함으로써 데이터를 안전하게 보존하는 기법이다. 캡슐화는 외부에 영향을 주지 않고 객체 내부의 구현을 변경할 수 있기 때문에 내부 로직에 대한 유연함을 제공한다.

  • Implementation: 숨길 부분
  • Interface: 공개할 부분
  • 캡슐화는 객체의 "동작 구현"에 중점을 둠

장점

  • 데이터를 안전하게 보존할 수 있음
  • 개발자의 협업을 수월하게 함
  • 유지보수가 쉬움
  • 가독성의 증가

Polymorphism (다형성)

 같은 이름을 가진 메소드라도 각 하위클래스의 상황에 맞게 다르게 구현될 수 있게 하는 것을  말한다. 즉 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석이 될 수 있다.
Method overriding

상위 클래스의 메서드와 같은 이름, 매개변수를 재정의 하는것이다. 상위클래스에서 만들어진 매서드는 하위 클래스의 상황에 따라 다시 재창조해 사용하는 것을 말한다.
Runtime에 이루어짐

Method overloading

같은 이름의 함수를 여러개 정의하고, 파라미터의 타입과 개수를 다르게 하여 파라미터에 따라다르게 호출할 수 있게하는 것 
메서드끼리 이름을 같지만 매개변수의 갯수나 데이터타입이 다르면 오버로딩이 적용되 메서드 이름이 같아도 문법 에러가 나지 않음 
Compile time(컴파일 타임)에 이루어짐

출처: https://koras02.tistory.com/172 [Koras02코딩웹:티스토리]

profile
블로그 이사 준비중!

0개의 댓글