Junior — Middle
Czy może podać przykład, kiedy rozdzielenie interfejsów jest uzasadnione w projekcie?
sobes.tech AI
Odpowiedź od AI
Podział interfejsów jest uzasadniony, gdy masz duży interfejs z wieloma metodami, które nie zawsze są potrzebne wszystkim klientom. Na przykład, w projekcie iOS, można podzielić protokół na kilka bardziej wąskich, aby różne klasy implementowały tylko te metody, które są im naprawdę potrzebne. To poprawia czytelność kodu i ułatwia jego utrzymanie.
Przykład: istnieje protokół MediaPlayable z metodami play(), pause(), stop(), record(). Jeśli klasa odpowiada tylko za odtwarzanie, nie musi implementować record(). Wtedy można podzielić na dwa protokoły:
protocol MediaPlayable {
func play()
func pause()
func stop()
}
protocol MediaRecordable {
func record()
}
W ten sposób klasy implementują tylko potrzebne im interfejsy.