Swift 기초문법 - 21. 프로토콜

정성윤·2023년 7월 18일
0

Swift 이론

목록 보기
23/64
  • 설계하고 설계대로 만드는 방법

프로토콜은 Swift에서 인터페이스를 정의하는 방법입니다. (약속)
명명 규칙 > 일반적으로(##able, ##delegate, ##ing 등)

프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다.
클래스, 구조체, 열거형은 프로토콜을 채택하여 프로토콜에 정의된 요구사항을 구현할 수 있습니다.

특징

  1. 요구사항 정의 :
    프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. 프로토콜은 선언만 하고 구현하지 않습니다.

  2. 채택(Adopting) :
    클래스, 구조체, 열거형은 프로토콜을 채택하여 프로토콜에 정의된 요구사항을 구현할 수 있습니다. 채택한 타입은 프로토콜의 요구사항을 모두 충족해야 합니다.

  3. 다중 프로토콜 채택 :
    하나의 타입은 여러 개의 프로토콜을 동시에 채택할 수 있습니다. > "다중 프로토콜 채택"

// 프로토콜 정의
protocol Vehicle {
    var numberOfWheels: Int { get }
    func drive()
}
// 클래스가 프로토콜을 채택
class Car: Vehicle {
    var numberOfWheels: Int = 4
    
    func drive() {
        print("Car is driving!")
    }
    }
>> // 구조체가 프로토콜을 채택
struct Bicycle: Vehicle {
    var numberOfWheels: Int = 2
    
    func drive() {
        print("Bicycle is pedaling!")
    }}
// 프로토콜 타입을 사용
let vehicle1: Vehicle = Car()
let vehicle2: Vehicle = Bicycle()
vehicle1.drive()  // 출력: "Car is driving!"
vehicle2.drive()  // 출력: "Bicycle is pedaling!"

구조체, 열거형, 클래스 등에서 프로토콜을 사용할때는 프로토콜에서 정의한 변수, 함수를 따라야합니다.
하지 않을경우 > 에러 발생

참고(출처) : 개발하는 정대리, 야곰(Swift 5)

profile
이유있는 스위프트 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기