728x90
기존 OOP의 단점
- Super Class에 의존적이라 subclass는 superclass의 필요하지 않은 변수, 함수를 상속 받아야 한다.
- Value Type은 상속을 사용할 수 없다
프로토콜 지향 프로그래밍 (Protocol Oriented Program)
- 필요한 특정 기능들을 프로토콜로 분리하여 프로그래밍하는 것을 의미한다.
- 프로토콜 지향 프로그래밍은 아래 장점을 가진다.
- Super Class에 독립적이다.
- Value type들에도 사용이 가능하다.
- Swift에서는 기본적인 Data 타입들(Int, Array, Double, String 등등)은 모두 구조체로 구현이 되어있기 때문에 Protocol의 중요성이 더욱 두드러진다.
- 그 외에도 Data Transfer Object와 같이 특정 Data를 표현하고 전달하는 Entity를 만들 때는, 데이터 오염을 막기 위해 value type을 많이 활용한다.
- 다중 상속의 한계를 극복할 수 있다.
- 기능의 모듈화가 가능하다.
- '프로토콜 초기 구현(Protocol + Extension)' 을 활용하면 재사용성을 높일 수 있다.
- 불필요한 API를 제외하고 필요한 API만 사용가능하다.
728x90
'Swift' 카테고리의 다른 글
[Swift] 특정 class 상속받아야만 protocol을 채택하도록 제약 걸기 (0) | 2022.07.16 |
---|---|
[Swift] Method Swizzling (0) | 2022.07.09 |
[Swift] 왜 struct에선 mutating을 사용해야하는가? (0) | 2022.06.19 |
[Swift] 메모리 구조 (0) | 2022.06.06 |
[Swift] Class vs Struct (0) | 2022.06.02 |
댓글