Czy podczas tworzenia biblioteki muszę upewnić się, że metody prywatne muszą działać zgodnie z oczekiwaniami, jeśli nie zostaną wywołane przez inne metody tej samej klasy, ale przez inną bibliotekę poprzez odbicie ?
Na przykład, jeśli metoda prywatna private DoSomething(int number)
oczekuje, że:
number
jest dodatnią niezerową liczbą całkowitą i:- zmienna prywatna
string abc
nie ma wartości null i nie jest pustym ciągiem,
i całkowicie, brzydka nie powiedzie, jeśli te dwa warunki nie są dopasowane, muszą sobie radzić te awarie nawet jeśli wiem, że wszystkie metody w klasie będzie always¹ przypisać niepusty wartość abc
przed wywołaniem DoSomething
i przekazać pozytywną niezerową liczbę całkowitą, to metoda?
Innymi słowy, czy kod, który nie jest chroniony przed niebezpiecznymi połączeniami poprzez odbicie, można uznać za kod niskiej jakości , czy należy do dzwoniącego, który używa odbicia, aby upewnić się, że połączenie niczego nie przerywa?
Uwaga: moje pytanie obejmuje tylko standardowy zestaw bibliotek. Nie obejmuje to kodu, który musi być bardzo bezpieczny (tj. Gdy ktoś może być zainteresowany użyciem odbicia, aby zachowywał się nieoczekiwanie lub ulegał awarii).
¹ Ponieważ klasa jest poprawnie udokumentowana, ponieważ istnieje wystarczająca liczba testów jednostkowych, aby upewnić się, że żaden inny programista nie złamie tej metody itp.