protocol OhMyCarSetTitleBarDelegate: AnyObject {
func backButtonPressed()
func skipButtonPressed()
func dictionaryButtonPressed()
func changeModelButtonPressed()
func titleButtonTapped()
}
class OhMyCarSetTitleBar: UIView {
...
}
OhMyCarSetTitleBar
의 버튼 터치 이벤트 같은 비동기 액션들을 Delegate로 처리
그걸 보고 든 생각이 위와 같이 비동기 처리 방식으로 컴바인을 사용한다면
일관성을 갖추어 버튼 이벤트 같은 것도 컴바인으로 처리해야 하지 않을까? 생각했습니다
정민님이 딜리게이트 사용했던 이유 : 해당 컴포넌트를 사용하려면 딜리게이트의 액션을 정의해야함을 알려주고자 사용
정민님 얘기를 듣고나니
컴바인은 커스텀 컴포넌트를 사용할 때 컴포넌트의 어떤 이벤트에 대한 액션을 정의하는 것을 강제하지 못하는 제약 있음
반면 딜리게이트를 사용하면 TitleBar를 쓸거면 backButtonPressed()
, skipButtonPressed()
등 메소드에 대해 정의해야 한다고 강제할 수 있음
→ 구현을 강제한다는 측면에서 TitleBar 같이 커스텀 컴포넌트의 액션 같은 경우는 딜리게이트로 처리하는 것이 더 좋아보인다는 결론
컴바인은 네트워크 비동기 처리에 사용하면 좋을 것 같다.
좀 더 직접 사용해보면서 더 얘기해보자