Sobes.tech
Junior — Middle

Czy możesz wyjaśnić zasadę jednolitej (kaczej) typizacji i jak jest ona stosowana w programowaniu?

sobes.tech AI

Odpowiedź od AI

Typowanie kaczkowe (duck typing) to koncepcja w programowaniu, w której typ obiektu jest określany nie przez jego klasę lub dziedziczenie, lecz przez obecność określonych metod i właściwości.

Zdanie "Jeśli coś wygląda jak kaczka, pływa jak kaczka i kwacze jak kaczka, to znaczy, że to kaczka" odzwierciedla istotę: nie typ obiektu jest ważny, lecz jego zachowanie.

W C# nie jest to wbudowany mechanizm jak w językach dynamicznych, ale można to imitować za pomocą interfejsów lub typowania dynamicznego (dynamic). Na przykład, jeśli obiekt implementuje potrzebne metody, można go używać bez ścisłej kontroli typu.

Przykład z dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Kwa kwa!");
    }
}

MakeItQuack(new Duck());

Tutaj ważne jest, aby przekazany obiekt miał metodę Quack, w przeciwnym razie wystąpi błąd podczas wykonywania.