W językach zorientowanych obiektowo, które obsługują ogólne parametry typu (znane również jako szablony klas i polimorfizm parametryczny, chociaż oczywiście każda nazwa ma inne konotacje), często możliwe jest określenie ograniczenia typu dla parametru typu, tak aby można było zejść z innego rodzaju. Na przykład jest to składnia w języku C #: …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Ostatnio przydzielono mi zadanie tworzenia kalkulatora z dodawaniem, odejmowaniem, mnożeniem, dzieleniem i mocą …
Mam następującą mapę: Map<Double, List<SoundEvent>> soundEventCells = new HashMap<Double, List<SoundEvent>>(); Ten HashMapmapy doublewartości (które są punktami, w czasie) do odpowiadającej SoundEvent„komórki”: każdy z „komórek” może zawierać kilka SoundEventsekund. Dlatego jest zaimplementowany jako List<SoundEvent>, ponieważ właśnie tak jest. Ze względu na lepszą czytelność kodu pomyślałem o zaimplementowaniu bardzo prostej statycznej klasy …
Wzornictwo strategia jest często traktowane jako substytut funkcji pierwszej klasy w językach, które ich nie posiadają. Powiedzmy na przykład, że chcesz przekazać funkcjonalność do obiektu. W Javie musisz przekazać obiektowi inny obiekt, który zawiera pożądane zachowanie. W języku takim jak Ruby wystarczy przekazać samą funkcjonalność w postaci funkcji anonimowej. Jednak …
Wyobraź sobie, że Twoi klienci chcą mieć możliwość dodania nowej właściwości (np. Koloru) do produktu w swoim sklepie internetowym w CMS. Zamiast mieć właściwości jako pola: class Car extends Product { protected String type; protected int seats; } Prawdopodobnie skończyłbyś robić coś takiego: class Product { protected String productName; protected …
( Dla celów tego pytania, kiedy mówię „interfejs”, mam na myśli konstrukcję językowąinterface , a nie „interfejs” w innym znaczeniu tego słowa, tj. Publiczne metody, które klasa oferuje światu zewnętrznemu w celu komunikowania się i manipuluj nim. ) Luźne sprzężenie można uzyskać poprzez uzależnienie obiektu od abstrakcji zamiast rodzaju betonu. …
Nasza dziedzina wiedzy obejmuje osoby chodzące boso po płycie rejestrującej ciśnienie. Dokonujemy rozpoznawania obrazu, co powoduje powstanie obiektów klasy „Foot”, jeśli ludzka stopa zostanie rozpoznana w danych czujnika. Istnieje kilka obliczeń, które należy wykonać na danych stopy. Teraz, który interfejs API byłby lepszy: class Foot : public RecognizedObject { MaxPressureFrame …
Ostatnio bawiłem się z Ruby i zastanawiałem się, czy w czysto obiektowych językach (a nawet tych, które nie są czyste) tworzenie metod, które przyjmują tylko jeden parametr, a następnie łączą się, jest równoważne curry w językach z funkcjonalnym styl? Jeśli nie, dlaczego nie? Byłbym wdzięczny za szczegółową, a nawet rygorystyczną …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 6 lat temu . Jak stosuje się Prawo Demetera do systemów obiektowych ze sprzężeniem i kohezją? Czytałem książkę „Rozwój …
Zainspirowany tym pytaniem Korzystanie z bibliotek firm trzecich - zawsze używasz opakowania? Chciałem wiedzieć, co ludzie faktycznie uważają za biblioteki stron trzecich. Przykład z PHP: Jeśli buduję aplikację przy użyciu frameworka Zend, czy powinienem traktować biblioteki frameworka Zend jako kod strony trzeciej? Przykład z C #: Jeśli buduję aplikację komputerową, …
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 …
Zgodnie z zasadą nr 4 Object Calisthenics autorstwa Jeffa Baya (RTF) w The ThoughtWorks Anthology zaleca się, aby „ używać kolekcji pierwszej klasy ”. Zasada 4: Kolekcje pierwszej klasy Stosowanie tej reguły jest proste: każda klasa zawierająca kolekcję nie powinna zawierać innych zmiennych składowych. Każda kolekcja jest pakowana we własną …
Omawiając pytanie dotyczące funkcji wirtualnych w przepełnieniu stosu, zastanawiałem się, czy istnieje jakieś oficjalne nazewnictwo dla czystych (abstrakcyjnych) i nieczystych funkcji wirtualnych. W moich informacjach zawsze polegałem na wikipedii, która stwierdza, że ogólne i nieczyste funkcje wirtualne są ogólnym terminem. Niestety w artykule nie ma kopii zapasowej źródła ani referencji. …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 6 lat temu . Sam programuję w Javie w bardzo OO. Nigdy nie miałem okazji współpracować z innymi programistami …
Niedawno podczas recenzji kodu natknąłem się na kod napisany przez nowego kolegę, który zawiera wzór z zapachem. Podejrzewam, że decyzje mojego kolegi opierają się na zasadach zaproponowanych w słynnej książce Clean Code (i być może także w innych podobnych książkach). Rozumiem, że konstruktor klasy jest całkowicie odpowiedzialny za utworzenie ważnego …
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.