Jestem wielkim fanem DI / IOC. Doskonale nadaje się do radzenia sobie z abstrakcyjnymi zależnościami i ułatwia życie. Mam jednak niewielką wadę, której nie jestem pewien, jak rozwiązać. Podstawową ideą w DI / IOC jest to, że gdy instancja obiektu jest tworzona, wszystkie jego zależności są wstępnie wypełniane w konstruktorze. …
Myślałem o tym od naprawdę długiego czasu, nie osiągając optymalnej odpowiedzi. Przede wszystkim jestem lekarzem, który uwielbia programowanie, ale nigdy tak naprawdę go nie studiował, z wyjątkiem nauki w domu i wielu lat zabawy kodem w wolnym czasie. Obecnie próbuję zbudować mały projekt do zarządzania moją kliniką, aby to zrobić, …
Czytałem artykuł programistyczny, w którym wspomniałem o wzorze dekoratora. Przez jakiś czas programowałem, ale nie miałem formalnego wykształcenia ani szkolenia, ale staram się poznać standardowe wzorce i tym podobne. Poszukałem Dekoratora i znalazłem na nim artykuł w Wikipedii . Teraz rozumiem koncepcję wzoru Dekoratora, ale ten fragment był mnie trochę …
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 4 lata temu . Właśnie natknąłem się na pytanie w SO dotyczące PAC i zainteresowałem się tym …
Nauczono mnie tego wyrażania i wzorców już dawno temu. Jasne, nazwa pochodzi od starych pomp, które musiały zostać napełnione wodą, zanim będą mogły pompować wodę, ale kogo to obchodzi? Mówimy tutaj o kodzie. Mile widziane są niektóre naprawdę dobre przykłady i wyjaśnienie tego, co osiąga wzór. Jak dziś postrzegany jest …
Dobra ćwierć wieku temu, kiedy uczyłem się C ++, nauczono mnie, że interfejsy powinny wybaczać i, w miarę możliwości, nie przejmować się kolejnością wywoływania metod, ponieważ konsument może nie mieć dostępu do źródła lub dokumentacji zamiast to. Jednak za każdym razem, gdy mentorowałem młodszych programistów i starszych deweloperów, słyszeli mnie, …
Według Roberta C. Martina SRP stwierdza, że: Klasa nigdy nie powinna mieć więcej niż jednego powodu do zmiany. Jednak w swojej książce Clean Code , rozdział 3: Funkcje, pokazuje następujący blok kodu: public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); …
Rozważ poniższy przykład. Każda zmiana wyliczenia ColorChoice wpływa na wszystkie podklasy IWindowColor. Czy wytryski powodują kruche interfejsy? Czy istnieje coś lepszego niż wyliczenie, które pozwala na większą elastyczność polimorficzną? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { public: ColorChoice getColor() const=0; void setColor( const …
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 . Z jakimi problemami mogę się spotkać, jeśli nie będę używać wzorców projektowych? Czy możesz mi …
Biorąc pod uwagę konstruktor, który nigdy nie będzie musiał używać różnych implementacji kilku obiektów, które inicjuje, czy nadal jest praktyczne stosowanie DI? W końcu nadal możemy chcieć przeprowadzić test jednostkowy. Klasa, o której mowa, inicjuje kilka innych klas w swoim konstruktorze, a klasy, których używa, są dość specyficzne. Nigdy nie …
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 …
LSP stwierdza, że klasy powinny być substytucyjne dla ich klas podstawowych, co oznacza, że klasy pochodne i podstawowe powinny być semantycznie równoważne. Ale czy LSP ma również zastosowanie do klas implementujących interfejs? Innymi słowy, jeśli metoda interfejsu zaimplementowana przez klasę różni się semantycznie od tego, czego spodziewa się użytkownik, czy …
Zamierzam zaimplementować repozytorium i chciałbym użyć wzorca UOW, ponieważ konsument repozytorium może wykonać kilka operacji i chcę je zatwierdzić jednocześnie. Po przeczytaniu kilku artykułów na ten temat, nadal nie rozumiem, jak powiązać te dwa elementy, w zależności od artykułu, który jest robiony w inny sposób. Czasami UOW jest czymś wewnętrznym …
Tak więc często spotykam się z sytuacją, w której moje modele zaczynają: Wyhoduj potwory z mnóstwem metod LUB Pozwalają ci przekazywać im fragmenty SQL, dzięki czemu są wystarczająco elastyczne, aby nie wymagały miliona różnych metod Załóżmy na przykład, że mamy model „widżetu”. Zaczynamy od kilku podstawowych metod: get ($ id) …
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.