프로토콜 확장으로 기능을 추가하기
존 호프만의 Protocol-Oriented Programming with Swift(스위프트 프로토콜지향 프로그래밍) 5장 읽으며 메모 (요약글 아님) 프로토콜 확장의 이점 (기능을 추가로 지원해주는 관점에서, 서브클래싱으로 그것을 이루었을 때와 비교했을 때) 클래스를 서브클래싱하여 그곳에 원하는 기능을 더했을 때의 한계: 원본 클래스에는 실제 기능을 추가하지 않으므로, 그 기능이 필요한 부분에서는 원본 클래스의 모든 인스턴스를 새로운 서브클래스의 인스턴스로 변경해야 한다. 프로토콜 확장의 경우, 해당 프로토콜을 따르기만 하면 그 기능을 제공할 수 있기 때문에 이런 치환 작업 없이 자동으로 확장한 함수/프로퍼티를 이용할 수 있다. 물론, 서브클래싱은 참조 타입(클래스 등)만 가능하고 값 타입(구조체, ..
개발서적 읽으며 끄적끄적/POP with Swift
2020. 1. 1. 12:08