W tej serii postów na blogu Eric Lippert opisuje problem z projektowaniem obiektowym, wykorzystując jako przykład kreatorów i wojowników: abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon Weapon { get; set; } } …
Niedawno przeglądałem kilka klas statycznych typu „torba narzędziowa” pomocnika unoszących się wokół dużych baz kodu C #, z którymi pracuję, w zasadzie takie jak ten bardzo skondensowany fragment kodu: // Helpers.cs public static class Helpers { public static void DoSomething() {} public static void DoSomethingElse() {} } Konkretne metody, które …
Tło: Piszę kod C mikrokontrolera, aby zapisać plik EBML. EBML jest jak binarny XML z zagnieżdżonymi elementami, ale zamiast znaczników początkowego i końcowego istnieje identyfikator początkowy, długość, a następnie dane. Piszę to w zewnętrznej pamięci Flash w aplikacji o niskiej mocy, więc chciałbym ograniczyć dostęp do lampy błyskowej do minimum. …
Moja firma przepisuje naszą aplikację internetową od zera. Jest to aplikacja dla dużych przedsiębiorstw ze złożoną domeną w branży finansowej. Używamy ORM (Entity Framework) do utrwalania. Zasadniczo połowa naszych aplikacji skupia się na gromadzeniu nieprzetworzonych danych od użytkownika, przechowywaniu ich, a następnie druga połowa aplikacji, która zawiera większość naszej rzeczywistej …
Przeczytałem tę odpowiedź: https://softwareengineering.stackexchange.com/a/234254/173318 proszę o poprawienie mojego zrozumienia. Reguły biznesowe odnoszą się do listy etapów biznesowych w świecie rzeczywistym (bez kodów). Logika biznesowa odnosi się do procesu przekształcania reguł biznesowych w kody i tych grup / rodzajów kodów adresowanych jako „Logika biznesowa”. Do czego służy warstwa usługi? jeśli przeczytam …
Zastanawiałem się, co sprawia, że Iterator jest wyjątkowy w porównaniu z innymi podobnymi konstrukcjami, i że Gang of Four wymienia go jako wzorzec projektowy. Iterator opiera się na polimorfizmie (hierarchii zbiorów ze wspólnym interfejsem) i oddzieleniu obaw (iteracja zbiorów powinna być niezależna od struktury danych). Ale co, jeśli zastąpimy hierarchię …
Po około miesiącu czytania i poszukiwania DDD postanowiłem rozpocząć własny projekt i stworzyłem DDD z tymi ograniczonymi kontekstami> Klienci Produkty Zamówienia Dane do faktury Każdy ograniczony kontekst ma spoczynkowy interfejs API jako warstwę prezentacji, warstwę domeny, warstwę trwałą. Jak na razie kod działa płynnie, ale pochodząc ze świata monolitycznego, wciąż …
Mam class Carco ma 2 właściwości: int pricei boolean inStock. Posiada również Listod abstract class State(pustej klasie). Istnieją dwa stany, które można zastosować w samochodzie i każdy jest reprezentowany przez własną klasę: class Upgrade extends Statei class Shipping extends State. A Carmoże pomieścić dowolną liczbę każdego z 2 stanów. Stany …
Próbowałem użyć Wzorca poleceń do implementacji Cofnij i Ponów w moim projekcie public abstract class Command { protected Form Receiver { set; get; } protected HtmlElement Element { set; get; } abstract public void ReDo(); abstract public void UnDo(); public Command(Form receiver) { this.Receiver = receiver; } } class AddElementCmd …
Czytam o pozyskiwaniu wydarzeń i nie mogę przestać zadawać sobie pytania, czy ma to sens tylko w egzotycznych sytuacjach, w których zapisy są bardzo rzadkie lub wymagana jest kontrola na poziomie wojskowym. Niezwykły system o dowolnym zastosowaniu może generować od setek do tysięcy zapisów dziennie, co przekłada się, powiedzmy, na …
Jedna część mojego programu pobiera dane z wielu tabel i kolumn w mojej bazie danych w celu przetworzenia. Niektóre kolumny mogą być null, ale w bieżącym kontekście przetwarzania jest to błąd. To „teoretycznie” nie powinno się zdarzyć, więc jeśli tak, wskazuje to na złe dane lub błąd w kodzie. Błędy …
Czytałem tę wiki na temat Stable Abstractions Principle (SAP) . SAP stwierdza, że im bardziej stabilny pakiet, tym bardziej powinien on być abstrakcyjny. Oznacza to, że jeśli pakiet jest mniej stabilny (bardziej prawdopodobne, że się zmieni), powinien być bardziej konkretny. Nie do końca rozumiem, dlaczego tak powinno być. Z pewnością …
Dlatego tworzę metodę tworzenia linii powitania opartej na dwóch osobach z bazy danych. Istnieją cztery parametry: dwie nazwy ( name1i name2) oraz dwie płcie ( genderi gender2). Dla każdej kombinacji płci mam coś innego. Na przykład: jeśli płeć 1 to M(mężczyzna) i płeć 2 również M, wynik powinien wyglądać następująco: …
Mam nadzieję, że te kłótnie wyjaśnią moje pytanie - jednak całkowicie zrozumiem, jeśli nie, więc daj mi znać, jeśli tak jest, a ja postaram się wyjaśnić. Poznaj BoxPong , bardzo prostą grę, którą stworzyłem, aby zapoznać się z tworzeniem gier obiektowych. Przeciągnij pole, aby kontrolować piłkę i zbierać żółte rzeczy. …
O ile rozumiem, Flux to technika jednokierunkowego obchodzenia się z przepływem danych aplikacji, utrzymywania stanu odizolowanego od reszty programu w samodzielnych „magazynach” tylko do odczytu, które mogą zmieniać swój stan poprzez słuchanie „działania” emitowane przez widoki i wysyłane przez dyspozytorów. Lub w skrócie - sposób kontrolowania stanu. Jeśli to prawda, …
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.