-
객체지향 프로그래밍(OOP)Front-end/TypeScript 2021. 5. 21. 19:40
절차지향적 프로그래밍 : 정의된 순서대로 절차적으로 함수를 하나씩 호출하는 프로그래밍
함수가 얽혀있고 데이터가 업데이트 될수있기때문에 전체적인 어플리케이션의 구조를 잘 파악해야하며, 수정시 사이드이펙트가 발생할 확률이 높다.
객체지향적 프로그래밍 : 관련있는 데이터와 함수를 객체로 정해서 프로그래밍해나가는것
사람과 가까운 생각을 하면서 객체를 구성해나감. 한 곳에서 문제가 생기면 관련있는 객체만 수정하면 된다. 또한 관련된 기능일때는 재사용도 가능하며 확장성이 높아진다.
객체지향 프로그래밍은 생산성과 높은품질을 보장한다.
객체지향적 프로그래밍의 특징
1. Encapsulation (캡슐화) : 서로 관련있는 데이터와 함수를 객체로 묶어내고 데이터와 함수를 감추거나 보여지게 하는 것.
타입스크립트는 캡슐화를 지원한다. private 제한자를 통해 변수은닉화가 가능하다.
2. Abstaction (추상성) : 객체의 기능들을 외부에서 인터페이스를 통해 사용하는 것.
3. Inheritance (상속)
상속을 통해 클래스를 재사용 할 수 있다. (IS-A관계)
ex) HTMLElement는 Element를 상속받았고 Element는 Node를 상속받았다.
4. Polymorphism (다형성) : 상속을 통해 만들어진 하위클래스에 정의된 함수를 이용해서 어떤 특징을 가진 하위클래스인지 상관없이 공통적으로 함수를 호출 할 수 있다.
- 유사한 스트럭쳐를 많이 가진 스트럭쳐
Poly => many / Morphy => form (어떤 형태)
'Front-end > TypeScript' 카테고리의 다른 글
[TypeScript 5.0 Beta] (0) 2023.01.30 [Generic] 리액트에서 제네릭 컴포넌트 사용하기 (0) 2022.11.25 인덱스 시그니처 (0) 2021.12.28 타입 연산과 제네릭 사용으로 반복 줄이기 (0) 2021.12.25 type vs interface (2) 2021.12.21