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 4 lata temu . Ponieważ język maszynowy (np. 0110101000110101) Języki komputerowe ewoluowały w kierunku wyższych form abstrakcji, ogólnie ułatwiając …
Jeśli masz klasę, która dziedziczy z dwóch odrębnych klas, czy nie oznacza to, że twoja podklasa automatycznie (przynajmniej) 2 rzeczy, po jednej z każdej nadklasy? Uważam, że nie ma różnicy, jeśli masz wiele interfejsów dziedziczenia. Edycja: Dla jasności uważam, że jeśli podklasowanie wielu klas narusza SRP, to implementacja wielu interfejsów …
To zdjęcie pochodzi z aplikacji Projektowanie i wzorce oparte na domenie: z przykładami w języku C # i .NET To jest diagram klasowy dla Wzorca Stanu, w którym a SalesOrdermoże mieć różne stany w czasie swojego życia. Tylko niektóre przejścia są dozwolone między różnymi stanami. Teraz OrderStateklasa jest abstractklasą, a …
Rozważ dwóch projektantów interfejsu użytkownika, którzy chcą zaprojektować „atrakcyjne dla użytkownika” projekty. „Przyciąganie użytkownika” to koncepcja, która nie jest obiektywna i dotyczy wyłącznie projektantów. W ten sposób projektant A mógłby na przykład wybrać czerwony kolor, podczas gdy projektant B wybiera niebieski. Projektant A utwórz układ zupełnie inny niż projektant B …
Staram się zrozumieć za kulisami JavaScript i trochę utknąłem w zrozumieniu tworzenia wbudowanych obiektów, zwłaszcza Obiektów i Funkcji oraz relacji między nimi. Kiedy przeczytałem, że wszystkie wbudowane obiekty, takie jak Array, String itp., Są rozszerzeniem (dziedziczonym) z Object, założyłem, że Object jest pierwszym wbudowanym obiektem, który zostaje utworzony, a reszta …
Obecnie pracuję nad większym projektem solo i mam kilka klas, w których nie widzę powodu, aby tworzyć instancję. Na przykład moja klasa kości przechowuje teraz statycznie wszystkie dane, a wszystkie metody są również statyczne. Nie muszę go inicjować, ponieważ kiedy chcę rzucić kostką i uzyskać nową wartość, po prostu używam …
tło Oto faktyczny problem, nad którym pracuję: chcę sposób na reprezentowanie kart w grze karcianej Magic: The Gathering . Większość kart w grze to normalnie wyglądające karty, ale niektóre z nich są podzielone na dwie części, każda z własną nazwą. Każda połowa tych dwuczęściowych kart jest traktowana jak karta. Dla …
Mam hierarchię klas reprezentujących kontrolki GUI. Coś takiego: Control->ContainerControl->Form Muszę zaimplementować serię algorytmów, które działają z obiektami wykonującymi różne czynności i myślę, że wzorzec dla gości byłby najczystszym rozwiązaniem. Weźmy na przykład algorytm, który tworzy reprezentację Xml hierarchii obiektów. Stosując podejście „klasyczne” zrobiłbym to: public abstract class Control { public …
Próbuję nauczyć się GRASP i znalazłem to wyjaśnione ( tutaj na stronie 3 ) o niskim sprzężeniu i byłem bardzo zaskoczony, gdy to znalazłem: Rozważ metodę addTrackdla Albumklasy, dwie możliwe metody to: addTrack( Track t ) i addTrack( int no, String title, double duration ) Która metoda zmniejsza sprzężenie? Drugi …
Poniższe dziedziczenie interfejsu jest nielegalne w PHP, ale myślę, że byłoby całkiem przydatne w prawdziwym życiu. Czy jest jakiś faktyczny lub udokumentowany problem z poniższym projektem, przed którym PHP mnie chroni? <?php /** * Marker interface */ interface IConfig {} /** * An api sdk tool */ interface IApi { …
Dlaczego warto stosować wzorzec strategii, jeśli można po prostu napisać kod w przypadkach „jeśli / to”? Na przykład: Mam klasę TaxPayer, a jedna z jej metod oblicza podatki przy użyciu różnych algorytmów. Dlaczego więc nie może mieć przypadków if / then i dowiedzieć się, jakiego algorytmu użyć w tej metodzie, …
Ostatnio zacząłem owijać głowę wokół OOP i teraz jestem do tego stopnia, że im więcej czytam o różnicach między klasami abstrakcyjnymi i interfejsami, tym bardziej się mylę. Jak dotąd nie można utworzyć żadnej z nich. Interfejsy są mniej więcej strukturalnymi planami, które określają szkielet, a streszczenia są różne, ponieważ są …
Myślałem o tym i miałem pewne wątpliwości. Kiedy deklaruję interfejs, na przykład: public interface MyInterface { public void method1(); public void method2(); } Czy te metody interfejsu można uznać za abstrakcyjne? Mam na myśli to, że pojęcie metody abstrakcyjnej to: Metoda abstrakcyjna to metoda zadeklarowana, ale nie zawierająca implementacji. Czy …
Niedawno przeczytałem artykuł, w którym napisano, że fałszywe obiekty są często źle rozumiane i niewłaściwie wykorzystywane. Czy są jakieś szydercze anty-wzory, na które mogę uważać?
Słyszałem wiele wzorców repozytoriów, ale zupełnie nie rozumiałem, co tak naprawdę powinno robić repozytorium. Kiedy mówię „co naprawdę powinno zrobić repozytorium”, martwię się głównie o to, jakie metody powinien on zapewnić. Na przykład, czy repozytorium naprawdę powinno zapewniać metody CRUD, czy powinno zapewniać jakąś inną metodę? Mam na myśli, czy …
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.