Szczególnie w Javie, ale prawdopodobnie także w innych językach: kiedy przydatne byłyby dwa odniesienia do tego samego obiektu? Przykład: Dog a = new Dog(); Dob b = a; Czy istnieje sytuacja, w której byłoby to przydatne? Dlaczego miałoby to być preferowanym rozwiązaniem, ajeśli chcesz korzystać z obiektu reprezentowanego przez a?
Będę używał agnostycznego opisu takich monad, opisując najpierw monoidy: Monoid jest (w przybliżeniu) zestaw funkcji, które mają jakiś rodzaj jako parametr i zwraca ten sam typ. Monada jest (w przybliżeniu) zestaw funkcji, które wymagają owinięcia typu jako parametr i zwraca samego rodzaju owijki. Zauważ, że są to opisy, a nie …
Załóżmy, że masz dwa interfejsy: interface Readable { public void read(); } interface Writable { public void write(); } W niektórych przypadkach obiekty implementujące mogą obsługiwać tylko jeden z nich, ale w wielu przypadkach implementacje będą obsługiwały oba interfejsy. Ludzie korzystający z interfejsów będą musieli zrobić coś takiego: // can't …
Czy architektura Entity Component System jest z definicji obiektowa? Wydaje mi się bardziej proceduralne lub funkcjonalne. Uważam, że nie przeszkadza to we wdrożeniu go w języku OO, ale nie byłoby idiomatyczne, aby robić to zdecydowanie OO. Wygląda na to, że ECS oddziela dane (E i C) od zachowania (S). Jako …
Jestem programistą C ++ na poziomie początkującym, ale rozumiem pojęcia języka dość dobrze. Kiedy zacząłem uczyć się zewnętrznych bibliotek C ++, takich jak SDL, OpenGL (może też coś innego), ku mojemu wielkiemu zaskoczeniu odkryłem, że w ogóle nie używają pojęć C ++. Na przykład ani SDL, ani OpenGL nie używają …
Przeszedłem przez wiele teorii na temat tego, czym jest enkapsulacja i trzy techniki jej wdrażania, którymi są Stowarzyszenie, Agregacja i Kompozycja. Znalazłem : Kapsułkowanie Hermetyzacja jest techniką nadawania polom klasy prywatności i zapewniania dostępu do pól metodami publicznymi. Jeśli pole zostanie uznane za prywatne, nie będzie dostępne dla osób spoza …
W Javie, C # i wielu innych silnie typowanych, sprawdzanych statycznie językach, jesteśmy przyzwyczajeni do pisania takiego kodu: public void m1() { ... } protected void m2() { ... } private void m2() { ... } void m2() { ... } Niektóre dynamicznie sprawdzane języki nie zapewniają słów kluczowych do …
Przedmioty nigdy? Cóż, prawie nigdy W sekcji VIEWPOINT Communications of The ACM znalazłem interesujący artykuł zatytułowany „ Przedmioty nigdy? Cóż, prawie nigdy ”. Jest to zupełnie inna perspektywa niż obiekty - najpierw czy obiekty późno. Sugeruje „przedmioty - nigdy”, a może „przedmioty - ukończenie szkoły”. Autor mówił o OOP i …
Czy jest jakiś cel deklarowania init()metody dla typu? Nie pytam, czy powinniśmy preferować init()konstruktor, czy jak uniknąć deklarowaniainit() . Pytam, czy istnieje jakikolwiek uzasadnienie deklaracji init()metody (zobaczenie, jak często jest stosowana) lub czy jest to zapach kodu i należy tego unikać. Ten init()idiom jest dość powszechny, ale jeszcze nie widziałem …
Jaka jest różnica między wzorami projektowania obiektowego a zasadami? Czy to są różne rzeczy? O ile rozumiem, obaj starają się osiągnąć jakiś wspólny cel (np. Elastyczność). Czy mogę więc powiedzieć, że wzór jest zasadą i odwrotnie? Zasada projektu = SOLID (tj. Zasada inwersji zależności) Wzór projektowy = Gof (tj. Abstrakcyjny …
Ja rozumiem , że według specyfikacji C ++ nie ma czegoś takiego jak „metoda”, a niektóre (wiele? Większość?) Programiści C ++ rozważyć „metoda” być Java-ism. Z drugiej strony, nawet na forum C ++ ludzie wydają się mówić o metodach bez drgań. Szukam znanych konwencji lub powszechnych praktyk dotyczących tej terminologii. …
Zgodnie z refaktoryzacją do wzorów : Gdy klasa próbuje zrobić zbyt wiele, często pojawia się jako zbyt wiele zmiennych instancji. Gdy klasa ma zbyt wiele zmiennych instancji, zduplikowany kod nie może być daleko w tyle. W jaki sposób posiadanie zbyt wielu zmiennych instancji prowadzi do duplikowania kodu?
Czytam, że zasada substytucji Liskowa jest naruszona, jeśli: Warunki wstępne są wzmocnione, lub Warunki dodatkowe są osłabione Ale jeszcze nie rozumiem, w jaki sposób te dwa punkty naruszałyby zasadę substytucji Liskowa. Czy ktoś może wyjaśnić przykład. W szczególności, w jaki sposób którykolwiek z powyższych warunków spowodowałby sytuację, w której obiekt …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Ostatnio zacząłem programować w Groovy dla środowiska testowego integracji, dla projektu Java. Używam Intellij IDEA z wtyczką Groovy i jestem zaskoczony, widząc ostrzeżenie dla wszystkich metod, które są niestatyczne i nie zależą od pól instancji. Jednak w Javie nie stanowi to problemu (przynajmniej z punktu widzenia IDE). Czy wszystkie metody, …
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.