Czytałem o wzorach projektowych i czytałem, że prototypowy wzór projektowy eliminuje nadmierną podklasę. Dlaczego podklasowanie jest złe? Jaką przewagę przyniosłoby zastosowanie prototypu nad
Czytałem o wzorach projektowych i czytałem, że prototypowy wzór projektowy eliminuje nadmierną podklasę. Dlaczego podklasowanie jest złe? Jaką przewagę przyniosłoby zastosowanie prototypu nad
Uczę się groovy i właśnie dowiedziałem się o nowej funkcji dodanej w 2.3, która jest dodatkiem do cech . Teraz wydaje mi się, że cechy pozwalają zrobić w zasadzie wszystko, co może zrobić superklasa i interfejs. Czy dodanie cech do Groovy powoduje, że dziedziczenie i interfejsy stają się...
„Odkryłem” interfejsy i zacząłem je kochać. Piękno interfejsu polega na tym, że jest to umowa, a każdy obiekt spełniający tę umowę może być używany wszędzie tam, gdzie wymagany jest interfejs. Problem z interfejsem polega na tym, że nie może on mieć domyślnej implementacji, co utrudnia przyziemne...
Chociaż docs Java określić, że odniesienia Słabe są przede wszystkim dla canonicalizing mapowania, znajdziesz wiele , wiele , wiele ludzi w internecie stwierdzające, że WeakHashMap jest idealny do przechowywania metadanych obiektu w trakcie jego trwania. Jednak nikt nie zadaje sobie trudu, aby...
Szybkie tło: W JavaScript funkcja konstruktora dla każdego typu obiektu ma prototypewłaściwość. prototypeOdnosi się do obiektu, co wykonane zastosowania obiektu jako Następnym krokiem w łańcuchu prototypu. Jeśli chcesz, aby jeden typ był nieodłączny od innego typu, możesz ustawić prototypetyp...
Biorąc pod uwagę, że Python pozwala na wielokrotne dziedziczenie, jak wygląda dziedziczenie idiomatyczne w Pythonie? W językach z pojedynczym dziedziczeniem, takich jak Java, dziedziczenie byłoby stosowane, gdy można by powiedzieć, że jeden obiekt „jest-a” innego obiektu i chcesz współdzielić kod...
Mój kolega wymyślił ogólną zasadę wyboru między tworzeniem klasy podstawowej a interfejsem. On mówi: Wyobraź sobie każdą nową metodę, którą zamierzasz wdrożyć. Rozważ to dla każdego z nich: czy ta metoda zostanie zaimplementowana przez więcej niż jedną klasę w dokładnie tej formie, bez żadnych...
Klasa Subjest podklasą klasy Sup. Co to znaczy praktycznie? Lub innymi słowy, jakie jest praktyczne znaczenie „dziedzictwa”? Opcja 1: Kod z Sup jest praktycznie kopiowany do Sub. (jak w „kopiuj-wklej”, ale bez skopiowanego kodu widocznego wizualnie w podklasie). Przykład: methodA()jest metodą...
Po przeprowadzeniu niektórych badań nie mogę znaleźć prostego przykładu rozwiązującego często spotykany problem. Powiedzmy, że chcę utworzyć małą aplikację, w której mogę tworzyć Squares, Circles i inne kształty, wyświetlać je na ekranie, modyfikować ich właściwości po ich wybraniu, a następnie...
Czy istnieje jakieś przyzwoite rozwiązanie problemu braku generycznych wersji PHP, które umożliwiają statyczną kontrolę kodu w celu wykrycia spójności typu? Mam klasę abstrakcyjną, którą chcę podklasować, a także wymuszam zmianę jednej z metod z przyjmowania parametru jednego typu na przyjmowanie...
Niezależnie od tego, czy obiekt istnieje fizycznie, czy nie, możemy modelować go na różne sposoby. W wielu przypadkach moglibyśmy arbitralnie zastosować uogólnienie lub kompozycję. Jednak zasada GoF „faworyzuj kompozycję zamiast uogólnienia [sic]” prowadzi nas do użycia kompozycji. Kiedy modelujemy...
Szybkie wyszukiwanie tej wymiany stosów pokazuje, że ogólnie kompozycja jest ogólnie uważana za bardziej elastyczną niż dziedziczenie, ale jak zawsze zależy od projektu itp. I są chwile, kiedy dziedziczenie jest lepszym wyborem. Chcę stworzyć grę w szachy 3D, w której każdy element ma siatkę, być...