Kiedy się korzysta z modyfikatora "private"?

Odpowiedz Nowy wątek
2019-08-26 03:16
0

Co oznacza modyfikator private w języku C# można znaleźć z łatwością. Ale zastanawia mnie fakt, po co się go w ogóle używa? W jednej z książek o testowaniu znalazłem cytat:

R. Osharove napisał(a):

Metody prywatne lub chronione - zazwyczaj zgodnie z tym, co myśli deweloper - nie bez powodu są prywatne. Czasami chodzi o to, aby ukryć szczegóły implementacji, tak aby później można było zmienić implementację, nie zmieniając ostatecznej funkcjonalności. Może to być również związane z bezpieczeństwem lub dotyczyć ochrony kodu (na przykład zaciemniania).

VS2017 (nie jestem pewien co do poprzednich wersji) przy automatycznym generowaniu metod domyślnie tworzy je jako private. Można by pomyśleć "hmm, chyba tak jest lepiej". Ale dlaczego lepiej? Przecież publiczne metody są testowalne i dostępne z innych klas. W takim razie w jakim celu je ukrywać dla innych klas? Rozumiem, że proste funkcje, lub funkcje które jedynie korzystają z biblioteki/frameworka nie wymagają testowania i mogą pozostać prywatne. Ale dalej ciekaw jestem, po co? Można też refaktoryzować większe metody na mniejsze prywatne, ale czemu mają być prywatne?

Podsumowując, co może się stać złego jak metoda będzie publiczna? W jakich sytuacjach jest to niebezpieczne?

testuje się zewnętrzne funkcjonalności, czyli 'public' - AnyKtokolwiek 2019-08-26 10:24

Pozostało 580 znaków

2019-08-26 21:21
0

Poczytaj o hermetyzacji. Ogólnie chodzi o to, by jak najwięcej metod/właściwości chować w ich własnym ekosystemie, tudzież klasie. To tak, jakbyś uchylał okno, zamiast otwierać je na oścież wraz z drzwiami, tworząc przeciąg.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 0, botów: 1

Robot: CCBot