[javascript] 객체지향 프로그래밍
2022. 7. 22. 22:11ㆍStudy/JavaScript
객체 지향 프로그래밍
💡 절차 지향 vs 객체 지향
- C가 절차 지향에 해당 - 절차적으로 생각!
- 데이터의 형태에 따라 코드의 흐름에 영향을 미쳐서 유지 보수가 어려움.
- JAVA, C++, C#이 객체 지향에 해당
- javascript는 객체 지향x지만 객체지향 패턴으로 작성 가능하다
객체 지향 프로그래밍의 주요 개념
캡슐화 (Encapsulation)
⇒ 재사용성 높이기, 코드를 간단하게
- 모든 실행 순서에 따라 절차적 코드가 아니라 코드로 기능 상상할 수 있게 작성
- 은닉화 : 내부 데이터나 구현이 외부로 노출되지 않도록 하기.
- 디테일한 구현, 데이터는 숨기고 필요 동작(메소드)만 노출
- 더 엄격한 클래스는 속성의 직접적인 접근을 막고, 설정하는 함수(setter
), 불러오는 함수(getter
)를 철저하게 나누기도 함
추상화(Abstraction)
⇒ 코드를 복잡X하게, 변화 영향 최소화
- 클래스 정의 시, 메서드와 속성만 정의한 것을 인터페이스
- 인터페이스 단순화
- 속에 복잡한 걸 안 보여준다
상속(Inheritance)
⇒ 불필요한 코드 X 재사용성 업
- 부모 클래스의 특징을 자식 클래스가 물려 받는다. 상속 받는다.
- 상속 받고 추가할 수 있다.
다형성(Polymorphism)
⇒ 조건문 대신 객체 특성에 맞게 달리 작동
- 다양한 형태
- 같은 이름을 가진 메서드여도 다르게 작동한다
사람이 세계를 보고 이해하는 방법과 같다는 점이 인상 깊었고, 인지 심리학 수업이 떠올랐다.