[swift] 프로토콜 상속

프로토콜은 기능을 정의하고 구현하는데 사용됩니다. 스위프트에서는 프로토콜을 상속하여 다른 프로토콜을 확장하고 업데이트할 수 있습니다.

기본 프로토콜 정의

먼저, 다음과 같이 Printable 프로토콜을 정의합니다.

protocol Printable {
    func print()
}

프로토콜 상속

이제 Printable 프로토콜을 상속한 DebugPrintable 프로토콜을 정의해 보겠습니다.

protocol DebugPrintable: Printable {
    func debugPrint()
}

위 코드에서 DebugPrintablePrintable 프로토콜을 상속하고 있습니다.

예시

아래의 예시에서는 DebugPrinter 클래스가 DebugPrintable 프로토콜을 따르고 있습니다. 이렇게 함으로써 DebugPrinter 클래스는 printdebugPrint 메서드를 구현해야 합니다.

class DebugPrinter: DebugPrintable {
    func print() {
        // 구현
    }

    func debugPrint() {
        // 구현
    }
}

상속된 프로토콜 사용

다른 프로토콜을 상속한 프로토콜은 다음과 같이 사용됩니다.

protocol Loggable: DebugPrintable {
    func log()
}

위 코드에서 Loggable 프로토콜은 DebugPrintable 프로토콜을 상속하고 있습니다.

프로토콜 상속을 사용하여 코드를 더 모듈화하고 재사용 가능하도록 만들 수 있습니다.


참고문헌:

  1. The Swift Programming Language - Inheritance
  2. Using protocol composition as a lightweight way to work with dependencies