저장을 습관화
객체 지향 프로그래밍 - 인터페이스 본문
1. 인터페이스란
타입스크립트에서의 인터페이스는 객체의 타입, 객체가 가져야 하는 속성과 메서드를 정의한다.
인터페이스를 구현한 객체는 인터페이스를 반드시 준수하여야 한다는 규약이 있어 어길 수 없다.
C나 자바같은 정적언어에서는 어떠한 메소드로 구현되어야 하는지만 정의하지만
타입스크립트의 인터페이스는 규약과 타입까지도 정의하기에 코드의 안정성과 유지 보수성을 향상시킬 수 있다.
2. 추상 클래스와 인터페이스의 차이
1) 구현부 제공 여부
- 추상 클래스
클래스의 기본 구현을 제공
- 인터페이스
객체의 구조만을 정의하고 기본 구현은 제공하지 않음
2) 상속 메커니즘
- 추상 클래스
단일 상속만 지원한다.
- 인터페이스
다중 상속을 지원한다.
즉, 하나의 클래스는 여러 인터페이스를 구현할 수 있다.
3) 구현 메커니즘
- 추상 클래스
추상 클래스를 상속박은 자식 클래스는 '반드시' 추상 함수를 구현해야 한다.
- 인터페이스
인터페이스를 구현하는 클래스는 인터페이스에 정의된 모든 메서드를 전부 구현하여야 한다.
3. 그렇다면 인터페이스는 언제 쓰면 좋은가?
기본 구현을 제공하고 상속을 통해 확장하는데 초점을 맞추고 싶다. -> 추상 클래스
객체가 완벽하게 특정 구조를 준수하도록 강제하고 싶다. -> 인터페이스
'공부 > TypeScript' 카테고리의 다른 글
TypeScript 연습 - 도서관 프로그램 만들기 (0) | 2023.08.01 |
---|---|
객체 지향 설계 원칙 - S.O.L.I.D (0) | 2023.08.01 |
객체 지향 프로그래밍 - 추상 클래스 (0) | 2023.08.01 |
객체 지향 프로그래밍 - 상속 (0) | 2023.08.01 |
객체 지향 프로그래밍 - 클래스 (0) | 2023.08.01 |