[Swift] 프로토콜(Protocol)

ds-k.mo·2022년 4월 29일
0

Swift

목록 보기
14/22

프로토콜

특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진

  • 클래스, 구조체, 열거형 등이 정의한 요구사항을 준수하도록 요구한다.
  • 프로토콜을 만족시키는 타입을 프로토콜을 따른다(conform)고 말한다.
  • 프로토콜에 필수 구현을 추가하거나 추가적인 기능을 더하기 위해 프로토콜을 확장(extend)하는 것이 가능하다.

코드 예시

protocol SomeProtocol {
    
}

protocol SomeProtocol2 {
    
}

struct SomeStructure : SomeProtocol, SomeProtocol2 {
    
}

class SomeSuperclass {
    
}

class SomeClass : SomeSuperclass, SomeProtocol, SomeProtocol2 {
    
}

이와같이 프로토콜을 따르도록 한다.

protocol FirstProtocol {
    var name : Int { get set }
    var age : Int { get } // 읽기 전용
}

protocol AnotherProtocol {
    static var someTypeProperty : Int { get set }
}

protocol FullyNames {
    var fullName : String { get set }
    func printFullName()
}

struct Person : FullyNames {
    var fullName : String
    func printFullName () {
        print(fullName)
    }
}

protocol SomeProtocol3 {
    func someTypeMethod()
}

protocol SomeProtocol4 {
    init(someParameter : Int)
}

protocol SomeProtocol5 {
    init()
}

class SomeClass : SomeProtocol5 {
    required init() { // class에서 생성자 요구사항을 채택하려면 required 키워드가 필요하다. struct는 x
        
    }
}

0개의 댓글