Swift Protocal

Protocal

프로토콜은 메서드, 프로퍼티, 이니셜라이저 등 요구 사항을 정의하여 특정 기능, 기능 집합을 나타내는 개념
구체적인 구현을 하진 않고 요구 사항에 대한 명세만 정의한다.
클래스, 구조체 , 열거형 등 다양한 유형이 프로토콜을 사용하여 구현할 수 있다.
이를 통해 코드 재사용성 및 유연성을 높힐 수 있다.

protocal SomeProtocal {
    //프로토콜의 요구사항 정의
}
  • 매서드 요구 : 특정 메서드를 구현, 매개변수와 반환값의 타입, 메서드 이름, 인스턴스 or 타입메서드 등 명시할 수 있다.
  • 프로퍼티 요구 : 특정 프로퍼티를 구현, 프로퍼티의 이름, 타입, 읽기 및 쓰기 가능 여부 명시
  • 이니셜라이저 요구 : 특정 이니셜라이저를 구현, 매개 변수와 이니셜라이저 과정을 명시
  • 서브스크립트 요구 : 특정 서브스크립트를 구현, 서브스크립트의 매개변수와 반환값의 타입을 명시

프로토콜을 채택한 타입은 프로토콜의 모든 요구사항을 구현해야한다.

protocol SomeProtocal {
    func doSomething()
}

class SomeClass: SomeProtocal {   //프로토콜 선언
    func doSomething() {
        print("Doing something!")
    }
}

SomeclassSomeProtocal을 채택하고 doSomething 메서드를 구현하여 프로토콜의 요구사항을 충족
이제 Someclass 인스턴스는 SomeProtocal 타입으로 사용될 수 있다.
또한, 프로토콜은 다중 상속을 지원하므로 하나의 클래스나 구조체가 여러 프로토콜을 채택할 수 있다.

'◽️ Programming > Swift 문법' 카테고리의 다른 글

옵셔널(Optional) 에 대한 정리 🧑🏻‍💻  (0) 2024.03.28
Swift Extention  (0) 2024.03.02
Swift Initializer  (0) 2024.03.02
Swift Type Casting  (0) 2024.03.02
Swift Class 상속 , overriding  (0) 2024.03.02