İki sınıfı düşünün Dog
ve Cat
her ikisi de Animal
protokole uygun (Swift programlama dili açısından. Java / C # arayüzünde olurdu).
Köpeklerin ve kedilerin karışık bir listesini gösteren bir ekranımız var. Orada Interactor
sınıf perde arkasında o kolları mantık.
Şimdi bir kediyi silmek istediğinde kullanıcıya bir onay uyarısı sunmak istiyoruz. Bununla birlikte, köpeklerin herhangi bir uyarı olmadan derhal silinmesi gerekir. Şartlı yöntem şöyle görünür:
func tryToDeleteModel(model: Animal) {
if let model = model as? Cat {
tellSceneToShowConfirmationAlert()
} else if let model = model as? Dog {
deleteModel(model: model)
}
}
Bu kod nasıl yeniden düzenlenebilir? Açıkçası kokuyor
Dog
veCat
sınıflar olarak tanımlanırkenAnimal
, bu sınıfların her biri tarafından uygulanan bir protokoldür. Yani soru ve cevabınız arasında biraz uyuşmazlık var.