티스토리 뷰

존 호프만의 Protocol-Oriented Programming with Swift(스위프트 프로토콜지향 프로그래밍) 4장 읽으며 메모 (요약글 아님)


객체지향에서 프로토콜 컴포지션이 클래스 상속 구조보다 유용한 케이스를 설명하기 적합한 예시가 책에 나와있어서 나중에 써먹으려고 메모. 되게 많을 것 같지만 생각보다 확 와닿고 쉬운 예제가 금방 떠오르지가 않는다. 그럴 때 이 예시를 들면 좋을 것 같다.

 

클래스 - 한 번에 하나의 부모만 상속이 가능함. (실제 세계에서, 나를 낳아준 부모가 중복이 될 수 없는 것처럼)

프로토콜 컴포지션 - 여러 개의 작은 프로토콜들을 채용하여 내가 필요한 것만 선별적으로 취할 수 있다. 따라서 비대한 슈퍼클래스의 생성 / 서브클래스가 쓸데없는 기능까지 다 안고 있을 필요가 없어짐. 불필요한 요구사항은 따르지 않으면 된다.

 

<예시> 만약 운동선수 모델을 클래스 상속 구조로 설계한다면?

 

이 상속 구조의 문제점: 아마추어 축구선수와 프로 축구선수 둘 다 축구선수이다. 축구에 관련된 코드가 겹치게 된다. (중복 코드 발생) > 중복을 해결하려면? 상속 구조로 풀게 되면, Athlete 클래스에 전부 때려넣어야 한다. (비추천)

 

이런 불편을 프로토콜 컴포지션으로 해결할 수 있다.

믹스 앤 매치 가능. 자신에게 필요한 프로토콜만 채용하면 된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함