Pytania otagowane jako object-oriented

Metodologia umożliwiająca modelowanie systemu jako zestawu obiektów, które można kontrolować i manipulować w sposób modułowy

17
Dlaczego prywatne pola nie są wystarczająco chronione?
Czy widoczność privatepól / właściwości / atrybutów klasy jest przydatna? W OOP prędzej czy później zamierzasz utworzyć podklasę klasy, w takim przypadku dobrze jest zrozumieć i móc całkowicie zmodyfikować implementację. Jedną z pierwszych rzeczy, które robię, gdy podklasuję klasę, jest zmiana zestawu privatemetod na protected. Jednak ukrywanie szczegółów przed światem …

23
Jeśli niezmienne obiekty są dobre, dlaczego ludzie wciąż tworzą obiekty zmienne? [Zamknięte]
Jeśli niezmienne obiekty¹ są dobre, proste i oferują korzyści w programowaniu współbieżnym, dlaczego programiści wciąż tworzą zmienne obiekty²? Mam cztery lata doświadczenia w programowaniu w Javie i, jak widzę, pierwszą rzeczą, którą ludzie robią po utworzeniu klasy, jest generowanie getterów i setterów w IDE (dzięki czemu jest zmienna). Czy brakuje …


2
Czy nazwy paczek powinny być w liczbie pojedynczej czy mnogiej?
Często, szczególnie w bibliotekach, pakiety zawierają klasy zorganizowane wokół jednej koncepcji. Przykłady: xml, sql, user, config, db . Myślę, że wszyscy czujemy się całkiem naturalnie, że te pakiety są poprawne w liczbie pojedynczej . com.myproject. xml .Element com.myproject. sql .Connection com.myproject. user .User com.myproject. użytkownik .UserFactory Jeśli jednak mam pakiet, …

15
Dlaczego potrzebujemy zmiennych prywatnych?
Dlaczego potrzebujemy zmiennych prywatnych w klasach? Każda książka o programowaniu, którą przeczytałem, mówi, że jest to zmienna prywatna, tak ją definiujesz, ale na tym się kończy. Sformułowanie tych wyjaśnień zawsze wydawało mi się, że naprawdę mamy kryzys zaufania do naszego zawodu. Wyjaśnienia zawsze brzmiały tak, jakby inni programiści zepsuli nasz …


16
Kiedy Gettery i Settery są uzasadnione
Getters i setery są często krytykowane jako nieodpowiednie OO. Z drugiej strony większość kodu OO, który widziałem, zawiera rozległe programy pobierające i ustawiające. Kiedy pobierający i ustawiający są uzasadnieni? Czy starasz się ich nie używać? Czy są ogólnie nadużywane? Jeśli twój ulubiony język ma właściwości (mój ma), wówczas takie rzeczy …

14
Skąd bierze się ta koncepcja „faworyzowania kompozycji nad dziedziczeniem”?
W ciągu ostatnich kilku miesięcy mantra „sprzyjanie kompozycjom nad dziedziczeniem” wydaje się pojawiać znikąd i stać się niemal rodzajem memu w społeczności programistów. I za każdym razem, gdy to widzę, jestem trochę zdziwiony. To tak, jakby ktoś powiedział: „faworyzuj wiertarki nad młotami”. Z mojego doświadczenia wynika, że ​​skład i dziedziczenie …


17
Czy lepiej jest zwracać NULL lub puste wartości z funkcji / metod, w których zwracana wartość nie jest obecna?
Szukam rekomendacji tutaj. Mam problem z tym, czy lepiej zwrócić NULL, czy pustą wartość z metody, gdy zwracana wartość nie jest obecna lub nie można jej ustalić. Jako przykład weź następujące dwie metody: string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person …

14
Jaka jest idealna długość metody dla Ciebie? [Zamknięte]
W programowaniu obiektowym oczywiście nie ma dokładnej reguły dotyczącej maksymalnej długości metody, ale nadal uważałem, że te dwa cytaty są ze sobą sprzeczne, więc chciałbym usłyszeć, co myślisz. W czystym kodzie: Podręcznik zwinnego wytwarzania oprogramowania Robert Martin mówi: Pierwszą zasadą funkcji jest to, że powinny być małe. Drugą zasadą funkcji …

6
Czym tak naprawdę jest „logika biznesowa”?
Zajmuję się tworzeniem stron internetowych od 2009 roku, kiedy zacząłem od PHP. Kiedy przeniosłem się do ASP.NET, dużo słyszałem o DDD i OOAD, gdzie wiele uwagi poświęcono tej „logice biznesowej” i „regułom biznesowym”. Chodzi o to, że wszystkie aplikacje, które do tej pory tworzyłem, dotyczyły operacji CRUD i nigdy nie …

12
Czy powinienem unikać metod prywatnych, jeśli wykonuję TDD?
Właśnie uczę się TDD. Rozumiem, że prywatne metody są nie do przetestowania i nie powinny się martwić, ponieważ publiczny interfejs API dostarczy wystarczających informacji do weryfikacji integralności obiektu. Przez jakiś czas rozumiałem OOP. Rozumiem, że prywatne metody sprawiają, że obiekty są bardziej enkapsulowane, a przez to bardziej odporne na zmiany …

17
Czy enkapsulacja jest nadal jednym ze słoni, na którym stoi OOP?
Enkapsulacja każe mi uczynić wszystkie lub prawie wszystkie pola prywatnymi i ujawnić je autorom / ustawiającym. Ale teraz pojawiają się biblioteki takie jak Lombok, które pozwalają nam ujawnić wszystkie prywatne pola za pomocą jednej krótkiej adnotacji @Data. Będzie tworzyć gettery, settery i konstruktory ustawień dla wszystkich prywatnych pól. Czy ktoś …

13
Czy powinniśmy wyeliminować zmienne lokalne, jeśli możemy?
Na przykład, aby utrzymać procesor włączony w Androidzie, mogę użyć takiego kodu: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); Ale myślę, że lokalne zmienne powerManageri wakeLockmogą być wyeliminowane: ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); podobna scena pojawia się w widoku alertu iOS, np .: z UIAlertView *alert = [[UIAlertView …

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.