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 …
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 …
Kolega powiedział mi, że tworzenie obiektów Java jest najdroższą operacją, jaką można wykonać. Mogę więc tylko stwierdzić, że mogę utworzyć jak najmniej obiektów. Wydaje się to nieco pokonywać cel programowania obiektowego. Jeśli nie tworzymy obiektów, piszemy tylko jeden długi styl klasy C w celu optymalizacji?
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, …
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 …
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 …
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 …
Właśnie zacząłem swoją pierwszą pracę jako programista ponad miesiąc temu. Wszystko, czego dowiedziałem się o OOP, SOLID , DRY , YAGNI, wzorach projektowych, SRP itp. Można wyrzucić przez okno. Używają formularzy internetowych C # .NET i robią prawie wszystko w ramach kodu za pomocą bardzo niewielu zewnętrznych klas, zdecydowanie nie …
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 …
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 …
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 …
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 …
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ś …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.