Pytania otagowane jako encapsulation

W OOP: mechanizm ograniczania dostępu do niektórych komponentów obiektu lub zasada projektowa zachęcająca do oddzielenia od szczegółów implementacji.


12
Dlaczego „prywatne” metody Pythona nie są prywatne?
Python daje nam możliwość tworzenia „prywatny” metod i zmiennych w klasie przez poprzedzenie podwójne podkreślenia do nazwy, na przykład: __myPrivateMethod(). Jak zatem to wyjaśnić >>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj = MyClass() >>> obj.myPublicMethod() public …

30
Kiedy należy używać „przyjaciela” w C ++?
Czytałem przez C ++ FAQ i byłem ciekawy frienddeklaracji. Osobiście nigdy go nie używałem, ale interesuje mnie odkrywanie języka. Jaki jest dobry przykład używania friend? Trochę dłużej czytając FAQ Podoba mi się pomysł << >>przeciążania operatora i dodawania go jako przyjaciela tych klas. Nie jestem jednak pewien, w jaki sposób …
354 c++  oop  encapsulation  friend 


4
Zrozumienie różnicy między __getattr__ a __getattribute__
Próbuję zrozumieć różnicę między __getattr__a __getattribute__jednak jestem braku na niego. Odpowiedź na pytanie przepełnienie stosu Różnica między __getattr__VS__getattribute__ mówi: __getattribute__jest wywoływany przed spojrzeniem na rzeczywiste atrybuty obiektu, więc może być trudny do prawidłowego wdrożenia. Bardzo łatwo możesz skończyć w nieskończonych rekurencjach. Nie mam pojęcia, co to znaczy. Następnie mówi: Prawie …

22
Abstrakcja VS Ukrywanie informacji VS Hermetyzacja
Czy możesz mi powiedzieć, jaka jest różnica między abstrakcją a ukrywaniem informacji podczas tworzenia oprogramowania? Jestem zdezorientowany. Abstrakcja ukrywa implementację szczegółów, a informacja ukrywa abstrakcyjne szczegóły czegoś. Aktualizacja: znalazłem dobrą odpowiedź na te trzy koncepcje. Zobacz oddzielną odpowiedź poniżej na kilka cytatów zaczerpniętych z tego miejsca .

9
Czy mam zwrócić kolekcję czy strumień?
Załóżmy, że mam metodę, która zwraca widok tylko do odczytu do listy członków: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Ponadto przypuśćmy, że wszystko, co robi klient, to powtórzenie …

9
Java: widoczność podpakietu?
Mam w projekcie dwa pakiety: odp.proji odp.proj.test. Są pewne metody, które chcę, aby były widoczne tylko dla klas w tych dwóch pakietach. W jaki sposób mogę to zrobić? EDYCJA: Jeśli w Javie nie ma koncepcji podpakietu, czy można to obejść? Mam pewne metody, które chcę, aby były dostępne tylko dla …

21
Czy zastrzyk zależności musi odbywać się kosztem enkapsulacji?
Jeśli dobrze rozumiem, typowym mechanizmem wstrzykiwania zależności jest wstrzyknięcie albo przez konstruktor klasy, albo przez właściwość publiczną (składową) klasy. To uwidacznia wstrzykiwaną zależność i narusza zasadę hermetyzacji OOP. Czy mam rację w identyfikacji tego kompromisu? Jak radzisz sobie z tym problemem? Zobacz także moją odpowiedź na moje własne pytanie poniżej.


25
Dobry sposób na hermetyzację Integer.parseInt ()
Mam projekt, w którym często używamy Integer.parseInt()do konwersji ciągu znaków na int. Gdy coś pójdzie nie tak (na przykład Stringnie jest liczbą, ale literą alub czymkolwiek), ta metoda zgłosi wyjątek. Jeśli jednak muszę wszędzie obsługiwać wyjątki w moim kodzie, bardzo szybko zaczyna to wyglądać bardzo brzydko. Chciałbym to przedstawić w …

16
Różnica między hermetyzacją a abstrakcją
Miałem dzisiaj wywiad. Miałem pytanie z OOP , o różnicy między Encapsulation & abstrakcji ? Odpowiedziałem jej, zgodnie z moją wiedzą, że enkapsulacja polega w zasadzie na wiązaniu członków danych i funkcji składowych w pojedynczą jednostkę o nazwie Class . Natomiast abstrakcja ma na celu ukrycie złożoności implementacji i zapewnienie …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.