tło Zajmuję się tworzeniem gier jako hobby i szukam lepszego sposobu na ich zaprojektowanie. Obecnie używam standardowego podejścia OOP (zajmuję się rozwojem przedsiębiorstwa od 8 lat, więc przychodzi to w ujęciu kwartalnym). Weźmy na przykład „złego” public class Baddie:AnimatedSprite //(or StaticSprite if needed, which inherit Sprite) { //sprite base will …
Jest już dość pomocne pytanie w tym zakresie („ Wzory projektowe inne niż OOP? ”), Ale jestem bardziej ciekawy przejściowego punktu widzenia dla kogoś, kto dopiero zaczyna pracę z dynamicznymi i słabo typowanymi językami. To znaczy: załóżmy, że programuję w C ++, C # lub Javie od wielu lat i …
Niedawno zacząłem szukać Wzorów projektowych i jedna rzecz, którą koduję, idealnie pasuje do wzorca Strategii, z wyjątkiem jednej małej różnicy. Zasadniczo niektóre (ale nie wszystkie) z moich algorytmów wymagają przekazania dodatkowego parametru lub dwóch. Więc albo będę musiał przekazuję im dodatkowy parametr, gdy wywołuję ich metodę obliczania lub przechowuj je …
Jakie są zalety i wady posiadania statycznych metod tworzenia obiektów nad konstruktorami? class Foo { private Foo(object arg) { } public static Foo Create(object arg) { if (!ValidateParam(arg)) { return null; } return new Foo(arg); } } Niewiele mogę wymyślić: Plusy: Zwraca null zamiast zgłaszania wyjątku (nazwij go TryCreate). Może …
Jesteśmy zależni od usługi innej firmy, która ujawnia gigantyczny interfejs, którego potrzebujemy tylko 3 metody. Dodatkowo interfejs często się zmienia ... W naszym projekcie postanowiłem zawinąć interfejs w klasę i ujawnić tylko metody, których potrzebujemy. Ale nie jestem pewien, jak powinienem obsługiwać zwracane wartości ... Interfejs zwraca obiekt typu Storage. …
Scenariusz: Stos: Java, Spring, Hibernacja. Model: aplikacja klient-serwer. Wzór: Model-View-Controller (MVC). Klasy warstwy usług mają trzy zachowania: Niektóre usługi zawierają regułę biznesową w ramach metod i delegują trwałość aplikacji. Lubić: EntityManager.save (encja); Niektóre usługi po prostu wywołują funkcję bazy danych (przekazują parametry), takie jak: CallableStatement cls = con.prepareCall („{call databaseFunction …
Mam klasę: Ajest to połączenie wielu mniejszych klas B, Ci D. B, CI Dwdrożyć interfejsów IB, ICoraz IDodpowiednio. Ponieważ Aobsługuje wszystkie funkcje B, Ci D, Anarzędzi IB, ICa IDtakże, ale to niestety prowadzi do wielu re-routing w realizacjiA Tak jak: interface IB { int Foo {get;} } public class B …
Jak planujesz architekturę aplikacji internetowej MVC na dużą skalę, w jaki sposób wdrażasz warstwy, aby były możliwie jak najbardziej rozdzielone i łatwe do przetestowania? (w zasadzie postępuj zgodnie z najlepszymi praktykami) Powiedzmy, że najpierw używam kodu jako dostępu do danych. Mam problem z tym, co zdefiniować jako „logikę biznesową” i …
Po prostu jakich praktycznych technik używają ludzie, aby sprawdzić, czy klasa narusza zasadę pojedynczej odpowiedzialności? Wiem, że klasa powinna mieć tylko jeden powód do zmiany, ale w tym zdaniu brakuje praktycznego sposobu, aby to naprawdę wdrożyć. Jedynym sposobem, jaki znalazłem, jest użycie zdania „The ......... powinien ......... sam w sobie”. …
Powiedzmy, że mam darmową i płatną wersję aplikacji. Wersja płatna jest nadzbiorem bezpłatnej wersji dotyczącej funkcji dostępnych dla użytkowników, co oznacza, że wersja płatna będzie miała wszystkie funkcje darmowej aplikacji plus dodatkowe. Czy istnieje wzorzec przełączania dostępności funkcji na podstawie flagi, która ładuje się przy starcie (np. Bezpłatny / płatny)? …
Po pierwsze, wiem, że to pytanie wiąże się z tematem tworzenia gier, ale postanowiłem zadać je tutaj, ponieważ naprawdę sprowadza się ono do bardziej ogólnego problemu związanego z tworzeniem oprogramowania. W ciągu ostatniego miesiąca dużo czytałem o systemach Entity-Component-Systems i teraz czuję się swobodnie z tą koncepcją. Jednak w jednym …
Obecnie pracuję jako programista solo nad moim obecnym projektem. Projekt odziedziczyłem od innego programisty, który odszedł z firmy. Jest to aplikacja internetowa w stylu kontrolera widoku modelu w języku C #. Używa Entity Framework do mapowania relacyjnego obiektu. Istnieją dwa różne zestawy klas dla typów w modelu domeny. Jeden zestaw …
Pracuję nad aplikacją, której moduł wykonuje kolejno następujące operacje finansowe: Gdy użytkownik poprosi o przelanie określonej kwoty na swoje konto bankowe: sprawdzić, czy jakaś transakcja może się teraz zdarzyć? (transakcja może być przeprowadzona tylko przez określony czas) sprawdź, czy użytkownik zażądał wypłaty minimalnej kwoty sprawdź, czy użytkownik ma jakieś domyślne …
Rozważ moduł odpowiedzialny za parsowanie plików dowolnego typu. Zastanawiam się nad wykorzystaniem wzorca strategii do rozwiązania tego problemu, jak już tu wyjaśniłem . Przed przejściem do tego pytania zapoznaj się z połączonym postem. Rozważ klasę B, która potrzebuje zawartości pliku product.xml. Ta klasa będzie musiała utworzyć instancję odpowiedniego konkretnego implementatora …
Czytam Coders at Work, a Brendan Eich cytuje artykuł Norviga z czasów, gdy był w Harlequin, „o tym, jak wzorce projektowe są tak naprawdę wadami w twoim języku programowania”. Czy ktoś może podać link do tego artykułu?
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.