본문 바로가기

TypeScript

클래스, 인터페이스, 객체지향설계원칙 SOLID

클래스 : 객체(instance)를 만들기 위한 틀

Class 키워드를 쓰면 됨

접근 제한자를 사용해 접근 제한

  • public : 클래스 외부에서도 접근 가능
  • private : 클래스 내부에서만 접근 가능
  • protected 

상속 : 기존 클래스의 속ㅅㅇ과 메서드를 물려받아 새로운 클래스 정의

 

추상클래스

  • 인스턴스화 할 수 없다.
  • abstract 키워드를 사용하여 정의

인터페이스

  • 객체가 가져야 하는 속성과 메서드 정의
  • 규약과 같아서 어길 수 없다.
  • 코드의 안정성과 유지보수성 ⬆️

객체지향설계원칙-S.O.L.I.D

S (SRP, 단일책임원칙)

: 클래스는 하나의 책임만 가져야 한다.

 

O (OCP, 개방폐쇄원칙)

: 클래스는 확장에 대해서는 열려있어야 하고, 수정코드에 대해서는 닫혀있어야 한다.

  기존코드를 변경하지 않고도 기능을 확장할 수 있어야 한다. 

  인터페이스나 상속을 통해 해결

 

L (LSP, 리스코프 치환 법칙)

: 서브타입은 기반이 되는 슈퍼타입을 대체할 수 있어야 한다. 자식클래스는 부모 클래스의 기능을 수정하지 않고도 부모 클래스와 호환되어야 한다.

 

I (ISP, 인터페이스 분리 원칙): 해당 클래스에게 무의미한 메서드의 구현을 막자

 

D (DIP, 의존성 역전 원칙): 하위 수준 모듈(구현 클래스) 보다 상위수준 모듈(인터페이스)에 의존을 해야 한다.