프로토콜 (Swift 프로그래밍 언어 측면에서 두 가지 클래스 Dog
와 Java / C #의 인터페이스)을 Cat
준수하는 클래스 를 모두 고려하십시오 Animal
.
우리는 개와 고양이의 혼합 목록을 보여주는 화면이 있습니다. 거기 Interactor
클래스는 뒤에서 그 핸들 로직은.
이제 고양이를 삭제하려고 할 때 사용자에게 확인 알림을 표시하려고합니다. 그러나 경고없이 개를 즉시 삭제해야합니다. 조건부가있는 방법은 다음과 같습니다.
func tryToDeleteModel(model: Animal) {
if let model = model as? Cat {
tellSceneToShowConfirmationAlert()
} else if let model = model as? Dog {
deleteModel(model: model)
}
}
이 코드를 어떻게 리팩터링 할 수 있습니까? 그것은 분명히 냄새
Dog
하고Cat
있는 동안, 클래스로 설명Animal
하는 각 클래스에 의해 구현 것 프로토콜입니다. 따라서 질문과 답변 사이에 약간의 불일치가 있습니다.