[Swift] 프로토콜지향

Boogios·2023년 6월 1일
0
post-thumbnail

Swift is a POP Language (Protocol-Oriented-Programming)

	// 공부한다 할 때 필요한 것들을 따로 모아두는 것 (요구사항들)
	protocol Studying {
    	var hours: Int { get set } // hours의 값을 외부에 알려줄 수 있고(get), 새롭게 지정할당할 수 있음(set)
    	func study()
    }
    
    // Studying 프로토콜을 따라서 작동하는 Student struct 구조체
    // Studying 프로토콜에 있는 study() 함수를 이 구조체 안에 구현을 해줌
    struct Student: Studying { // Studying 프로토콜의 요구사항을 따르겠다는 의미임
    	var name: String
        var currentHours: Int = 5
        
        // var hours: Int = 0 이렇게도 지정 가능하지만 get set 예시를 보여주자면,
        var hours: Int {
        	get {
            	return currentHours
            }
            
            set {
            	currentHours = newValue // 새로운 값을 지정해주는 키워드!
                print("지금까지 공부한 시간은: \(currentHours)시간 입니다.")
            }
        }
        
        func study() {
        	print("공부 중")
        }
    }
    
    let keen: Student = Student()
    keen.study() // 공부 중 출력
    
    keen.hours = 10 // 지금까지 공부한 시간은: 10시간 입니다 출력

위의 코드는 간단한 프로토콜 예시임

프로토콜에서 초기에 구현해놓은 메소드와 다른 동작을 하더라도 변경해주면 됨

profile
iOS Developer

0개의 댓글