Delegate Pattern

팀 프로젝트 시작 전 선행학습(챌린지 반 수업 과제)

 

델리게이트 패턴이란?

보통 Table View && Collection View 에서 많이 사용 됨

인스턴스가 특정 작업을 다른 인스턴스에 위임하여 처리 하도록 함 (짬처리 하는거 아닌가?)

 

암튼

 

프로토콜은 델리게이트가 수행해야 할 작업을 정의하고, 델리게이트 프로퍼티는 실제로 그 작업을 수행할 인스턴스를 참조 함

그렇게 이제 델리게이트를 사용하는 클래스는 특정 이벤트가 발생했을 때 델리게이트 메서드를 호출하고,

구현하는 클래스는 그 메서드를 실제로 구현하여 이벤트에 대한 처리를 수행 함

 

이론은 이게 끝임 코드를 한번 보자구

 

 

Delegate Pattern 예시

// 1. 프로토콜 정의
protocol ButtonDelegate: AnyObject {
	func didTapButton()
}

// 2. 델리게이트를 사용하는 클래스
class Button {
	weak var delegate: ButtonDelegate?
    
    func tap() {
    	// 3. 델리게이트 메서드 호출
        delegate?.didTapButton()
    }
}

// 4. 델리게이트를 구현하는 클래스
class ViewController: UIViewController, ButtonDelegate {
	let button = Button()
    
    overrid func viewDidLoad() {
    super.viewDidLoad()
    button.delegate = self
    }
}

// 6. 델리게이트 메서드 구현
	func didTapButton() {
		print("버튼이 눌렷서")    
    }
}

// 앱의 진입점 예시 (주로 AppDelegate or SceneDelegate에서 호출 됨)
let viewController = ViewController()
viewController.viewDidLoad()
viewController.button.tap()

 

'Swift' 카테고리의 다른 글

(CS) 네트워크 대비 지식쌓기 (1/2)  (0) 2024.07.07
Xcode 내 휴대폰 연동  (0) 2024.07.01
Swift Optional  (0) 2024.06.28
CoW (Copy - on - Write)  (0) 2024.06.27
Swift LifeCycle - 추가 예정 (미완)  (1) 2024.06.26