Sobes.tech
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.