Widzę dużo kodu źródłowego używającego idiomu PImpl w C ++. Zakładam, że jego celem jest ukrycie prywatnych danych / typu / implementacji, aby mógł on usunąć zależność, a następnie skrócić czas kompilacji i problem z nagłówkiem. Ale klasy interfejsu / czysto abstrakcyjne w C ++ również mają tę możliwość, można …
Interesuje mnie nauka wzorców projektowych i chciałbym wiedzieć, co są uważane za książki najwyższego poziomu w nauce tego przedmiotu. Czy istnieje książka, która jest de facto standardem opisującym najlepsze praktyki, metodologie projektowania i inne pomocne informacje na temat wzorców projektowych? Co z tą książką czyni ją wyjątkową?
Zaimplementowanie tworzenia łańcuchów na fasoli jest bardzo przydatne: nie trzeba przeciążać konstruktorów, mega konstruktorów, fabryk i zapewnia większą czytelność. Nie mogę wymyślić żadnych wad, chyba że chcesz, aby twój obiekt był niezmienny , w którym to przypadku i tak nie miałby żadnych ustawień. Czy jest więc powód, dla którego nie …
Wdrażając Wzorzec Konstruktora, często mylę się, kiedy pozwolić, aby budowanie się nie powiodło, a nawet co kilka dni potrafię zająć różne stanowisko w tej sprawie. Najpierw jakieś wyjaśnienie: Z wczesnym niepowodzeniem mam na myśli, że budowanie obiektu powinno zakończyć się niepowodzeniem, gdy tylko zostanie przekazany nieprawidłowy parametr. Więc wewnątrz SomeObjectBuilder. …
Metoda A wywołuje metodę B, która z kolei wywołuje metodę C. Nie ma obsługi wyjątków w metodzie B lub metodzie C. Ale istnieje metoda obsługi wyjątków w metodzie A. W metodzie C występuje wyjątek. Teraz wyjątek dotyczy metody MethodA, która odpowiednio ją obsługuje. Co jest z tym nie tak? Moim …
Aby obsłużyć kilka możliwych błędów, które nie powinny powstrzymywać wykonywania, mam errorzmienną, którą klienci mogą sprawdzać i używać do zgłaszania wyjątków. Czy to jest anty-wzór? Czy istnieje lepszy sposób, aby sobie z tym poradzić? Na przykład w akcji możesz zobaczyć API mysqli PHP . Załóżmy, że problemy z widocznością (akcesory, …
Czytając 21 wiek C Doszedłem do rozdziału 6 w sekcji „Oznaczanie wyjątkowych wartości liczbowych za pomocą NaNs” , gdzie wyjaśnia użycie bitów w mantysie do przechowywania niektórych dowolnych wzorów bitów, wykorzystywania ich jako znaczników lub wskaźników (książka wspomina że WebKit korzysta z tej techniki). Nie jestem do końca pewien, czy …
Będąc studentem informatyki, jeden z naszych nauczycieli przedstawił mi ostatnio przegląd wzorców projektowych. Zrozumiałem, do czego służą, ale niektóre aspekty wciąż mnie denerwują. Czy naprawdę są używane przez większość programistów? Mówiąc o doświadczeniu, miałem pewne problemy podczas programowania, rzeczy, których nie mogłem rozwiązać przez jakiś czas, ale Google i kilka …
Używam MVC / MV *, odkąd zacząłem organizować swój kod lata temu. Używam go tak długo, że nie mogę nawet wymyślić żadnego innego sposobu ustrukturyzowania mojego kodu, a każda praca, którą miałem po stażu była oparta na MVC. Moje pytanie brzmi: jakie są wady MVC? W jakich przypadkach MVC byłby …
czy to zła praktyka, że repozytorium wywołań kontrolera zamiast usługi? wyjaśnić więcej: Rozumiem, że w dobrym projekcie kontrolery wywołują serwis i repozytorium użytkowania usługi. ale czasami w kontrolerze nie mam / potrzebuję żadnej logiki i po prostu muszę pobrać z db i przekazać go do przeglądania. i mogę to zrobić …
Użyłem SignalRdo osiągnięcia funkcjonalności wiadomości w czasie rzeczywistym, w kilku z moich projektów. Wydaje się, że działa niezawodnie i jest bardzo łatwy do nauczenia się obsługi. Pokusa, przynajmniej dla mnie, to rezygnacja z rozwijania usługi Web API i używanie jej SignalRdo wszystkiego. Wydaje mi się, że można to osiągnąć dzięki …
Czy istnieją scenariusze, w których odpytywanie o zdarzenia byłoby lepsze niż stosowanie wzorca obserwatora ? Obawiam się, że użyję odpytywania i zacznę go używać, jeśli ktoś da mi dobry scenariusz. Mogę tylko myśleć o tym, jak wzorzec obserwatora jest lepszy niż odpytywanie. Rozważ ten scenariusz: Programujesz symulator samochodowy. Samochód jest …
Może trochę zuchwale, ale ponieważ nigdzie nie mogę znaleźć tej odpowiedzi za pośrednictwem Google, więc aby upewnić się, że Inżynieria oprogramowania ma odpowiedź: Co to jest pomocnik? Widziałem tę nazwę wszędzie używaną (nazwy modułów, nazwy klas, nazwy metod), jak gdyby semantyka była głęboka i znacząca, ale w kontekście informatyki (chociaż …
W końcu zacząłem poważnie próbować nauczyć się kilku podstawowych wzorców (bardzo późno w karierze, ale to inna historia), staram się omijać różnice między wzorcem fabrycznym a fabryką abstrakcyjną. Jakie są kluczowe różnice między tymi dwoma wzorami? Rozumiem, że Metoda Fabryczna tworzy obiekty poprzez dziedziczenie, a Abstract Factory robi to poprzez …
Powiedział Jame Gosling „W miarę możliwości należy unikać dziedziczenia implementacji.” i zamiast tego użyj dziedziczenia interfejsu. Ale dlaczego? Jak możemy uniknąć dziedziczenia struktury obiektu za pomocą słowa kluczowego „extends”, a jednocześnie uczynić nasz kod obiektowym zorientowanym? Czy ktoś mógłby podać obiektowy przykład ilustrujący tę koncepcję w scenariuszu „zamawianie książki w …
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.