[javascript] 객체지향 프로그래밍

2022. 7. 22. 22:11Study/JavaScript

    객체 지향 프로그래밍

    💡 절차 지향 vs 객체 지향

    • C가 절차 지향에 해당 - 절차적으로 생각!
      • 데이터의 형태에 따라 코드의 흐름에 영향을 미쳐서 유지 보수가 어려움.
    • JAVA, C++, C#이 객체 지향에 해당
      • javascript는 객체 지향x지만 객체지향 패턴으로 작성 가능하다

    객체 지향 프로그래밍의 주요 개념

    캡슐화 (Encapsulation)

    ⇒ 재사용성 높이기, 코드를 간단하게
    - 모든 실행 순서에 따라 절차적 코드가 아니라 코드로 기능 상상할 수 있게 작성
    - 은닉화 : 내부 데이터나 구현이 외부로 노출되지 않도록 하기.
    - 디테일한 구현, 데이터는 숨기고 필요 동작(메소드)만 노출
    - 더 엄격한 클래스는 속성의 직접적인 접근을 막고, 설정하는 함수(setter), 불러오는 함수(getter)를 철저하게 나누기도 함

    추상화(Abstraction)

    ⇒ 코드를 복잡X하게, 변화 영향 최소화
    - 클래스 정의 시, 메서드와 속성만 정의한 것을 인터페이스
    - 인터페이스 단순화
    - 속에 복잡한 걸 안 보여준다

    상속(Inheritance)

    ⇒ 불필요한 코드 X 재사용성 업
    - 부모 클래스의 특징을 자식 클래스가 물려 받는다. 상속 받는다.
    - 상속 받고 추가할 수 있다.

    다형성(Polymorphism)

    ⇒ 조건문 대신 객체 특성에 맞게 달리 작동
    - 다양한 형태
    - 같은 이름을 가진 메서드여도 다르게 작동한다

    사람이 세계를 보고 이해하는 방법과 같다는 점이 인상 깊었고, 인지 심리학 수업이 떠올랐다.

    맨 위로
    // //