본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/SWIFT : GRAMMAR

Swift 기초 문법 - 프로토콜(Protocol)

프로토콜(Protocol)

💡 프로토콜(Protocol)

- 메소드, 프로퍼티 및 기타 요구사항을 정의하여 특정 작업 또는 기능의 일부로 사용될 수 있는 청사진

- 요구사항의 명세를 정의하고, 클래스, 구조체 또는 열거형에서 이러한 요구사항을 구현할 수 있도록 함

- 설계된 조건만 정의를 하고 제시를 할 뿐 스스로 기능을 구현하지 않음

- 프로토콜 내에서 정의되는 프로퍼티는 이름과 타입만 명시되며, gettablesettable 여부도 명시됨

- 메서드를 정의할 때 메서드 이름과 리턴값을 지정할 수 있지만, 실제 구현 코드는 {} 내부에 작성하지 않음

- 클래스 이외에도 structenum도 프로토콜을 채택할 수 있음

- 상속은 단일 상속만 가능하지만, 프로토콜은 다중 상속이 가능, 이는 코드의 확장성을 높여줌

- 항상 var로 선언

 

 

 프로토콜(Protocol) 정의 

protocol ProtocolName {
    // 프로토콜에서 요구하는 메서드, 프로퍼티, 기타 요구사항 정의
}

 

 

 프로토콜(Protocol) 채택 

Circle 클래스는 Drawable 프로토콜을 채택하고, draw() 메서드를 구현하여 원을 그리는 로직 추가

class Circle: Drawable {
    func draw() {
        // 원 그리기 로직 구현
        print("원을 그립니다.")
    }
}

 

 

Square 구조체는 Drawable 프로토콜과 CustomStringConvertible 프로토콜을 동시에 채택하고, draw() 메서드와 description 프로퍼티 구현

struct Square: Drawable, CustomStringConvertible {
    var sideLength: Double

    func draw() {
        // 정사각형 그리기 로직 구현
        print("정사각형을 그립니다.")
    }

    var description: String {
        return "한 변의 길이가 \(sideLength)인 정사각형"
    }
}

 

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31