Protocal
프로토콜은 메서드, 프로퍼티, 이니셜라이저 등 요구 사항을 정의하여 특정 기능, 기능 집합을 나타내는 개념
구체적인 구현을 하진 않고 요구 사항에 대한 명세만 정의한다.
클래스, 구조체 , 열거형 등 다양한 유형이 프로토콜을 사용하여 구현할 수 있다.
이를 통해 코드 재사용성 및 유연성을 높힐 수 있다.
protocal SomeProtocal {
//프로토콜의 요구사항 정의
}
- 매서드 요구 : 특정 메서드를 구현, 매개변수와 반환값의 타입, 메서드 이름, 인스턴스 or 타입메서드 등 명시할 수 있다.
- 프로퍼티 요구 : 특정 프로퍼티를 구현, 프로퍼티의 이름, 타입, 읽기 및 쓰기 가능 여부 명시
- 이니셜라이저 요구 : 특정 이니셜라이저를 구현, 매개 변수와 이니셜라이저 과정을 명시
- 서브스크립트 요구 : 특정 서브스크립트를 구현, 서브스크립트의 매개변수와 반환값의 타입을 명시
프로토콜을 채택한 타입은 프로토콜의 모든 요구사항을 구현해야한다.
protocol SomeProtocal {
func doSomething()
}
class SomeClass: SomeProtocal { //프로토콜 선언
func doSomething() {
print("Doing something!")
}
}
Someclass
는 SomeProtocal
을 채택하고 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 |