Pytania otagowane jako object-oriented-design

Projektowanie obiektowe to proces planowania systemu interakcji obiektów w celu rozwiązania problemu z oprogramowaniem.

4
Praktyczne limity wielkości tabeli mieszającej i słownika w języku c #
Jakie są praktyczne ograniczenia liczby elementów, które może zawierać słownik lub tablica mieszająca C # 4, oraz całkowita liczba bajtów, jaką te struktury mogą zawierać. Będę pracować z dużą liczbą obiektów i chcę wiedzieć, kiedy te struktury zaczną napotykać problemy. Dla kontekstu użyję 64-bitowego systemu z mnóstwem pamięci. Ponadto będę …

5
Pułapki projektowania opartego na domenach dzięki Entity Framework
Wiele tutoriali na temat DDD, które studiowałem, dotyczy głównie teorii. Wszystkie mają podstawowe przykłady kodu (Pluralsight i podobne). W Internecie próbuje się również kilka osób, aby stworzyć samouczki dotyczące DDD z EF. Jeśli zaczniesz je studiować krótko - szybko zauważysz, że bardzo się od siebie różnią. Niektóre osoby zalecają, aby …

2
Klasy Python z tylko jedną instancją: Kiedy utworzyć (pojedynczą) instancję klasy, a kiedy zamiast tego pracować z klasą?
Biorąc pod uwagę klasę Python, która zostanie utworzona tylko raz, tzn. Będzie tylko jeden obiekt klasy. Zastanawiałem się, w jakich przypadkach sensowne jest utworzenie instancji pojedynczej klasy zamiast pracy bezpośrednio z klasą. Jest podobne pytanie , ale koncentruje się na innym: chodzi o grupowanie zmiennych globalnych i funkcji w klasę …

5
Czy w tym scenariuszu powinienem preferować kompozycję lub dziedziczenie?
Rozważ interfejs: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Interfejs ten jest implementowany przez wiele klas, które generują fale o różnych kształtach (na przykład SineWaveGeneratori SquareWaveGenerator). Chcę zaimplementować klasę, która generuje SoundWavedane muzyczne, a nie surowe dane dźwiękowe. Otrzyma nazwę nuty i długość wyrażoną w uderzeniach (nie sekundach) …

3
Czy lepiej jest wstępnie inicjować atrybuty w klasie, czy dodawać je po drodze?
Przykro mi, jeśli jest to całkowicie absurdalne pytanie, ale jestem ciekawy, jakie są najlepsze praktyki i nie mogę znaleźć dobrej odpowiedzi w Google. W Pythonie zwykle używam pustej klasy jako super-catchallowego kontenera struktury danych (coś w rodzaju pliku JSON) i dodając atrybuty po drodze: class DataObj: "Catch-all data object" def …


4
Projektowanie w „mieszanych” językach: projektowanie obiektowe czy programowanie funkcjonalne?
W ostatnich latach języki, których lubię używać, stają się coraz bardziej „funkcjonalne”. Teraz używam języków, które są rodzajem „hybrydowym”: C #, F #, Scala. Lubię projektować swoją aplikację przy użyciu klas, które odpowiadają obiektom domeny, i używam funkcji funkcjonalnych, dzięki którym kodowanie jest łatwiejsze, bardziej spójne i bezpieczniejsze (szczególnie podczas …

9
Metody SOLID vs. statyczne
Oto często spotykany problem: Niech będzie projekt sklepu internetowego, który ma klasę produktu. Chcę dodać funkcję, która pozwala użytkownikom publikować recenzje w produkcie. Mam więc klasę Review, która odwołuje się do produktu. Teraz potrzebuję metody, która wyświetla wszystkie recenzje produktu. Istnieją dwie możliwości: (ZA) public class Product { ... public …

7
Jakie są najlepsze praktyki rejestrowania z perspektywy projektowania? [Zamknięte]
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 . Chcę dodać rejestrowanie do aplikacji, nad którą aktualnie pracuję. Wcześniej dodawałem rejestrowanie, to nie jest …

10
Jaki jest sens właściwości?
Oto kilka argumentów dla właściwości i moich kontrargumentów: Łatwiejszy w użyciu niż pisanie metod pobierających i ustawiających Pary metod Gettera i Settera są zapachem kodu. Ułatwienie ich pisania jest jak ułatwienie zaliczenia testu matematycznego za pomocą formularza Scantron i wypełnienia wszystkich liter „C”. Obiekty, które zawierają tylko stan, dla trwałości, …

2
Późne wiązanie obiektowe
W Alan Kays Definition Object Oriented znajduje się definicja, której częściowo nie rozumiem: OOP oznacza dla mnie tylko wysyłanie wiadomości, lokalne przechowywanie, ochronę i ukrywanie procesów państwowych oraz ekstremalne późne wiązanie wszystkich rzeczy. Ale co oznacza „LateBinding”? Jak mogę to zastosować w języku takim jak C #? I dlaczego to …

4
Wzorzec powielania klas?
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 …

5
Najlepszy wzorzec projektowy OOP dla sekwencji operacji
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 …


2
Czy istnieje elegancki sposób sprawdzania unikalnych ograniczeń atrybutów obiektów domeny bez przenoszenia logiki biznesowej do warstwy usług?
Dostosowuję projektowanie oparte na domenie od około 8 lat i nawet po tylu latach wciąż mnie wkurza. To sprawdza unikalny rekord w przechowywaniu danych w stosunku do obiektu domeny. We wrześniu 2013 r. Martin Fowler wspomniał o zasadzie TellDon'tAsk , która, jeśli to możliwe, powinna być stosowana do wszystkich obiektów …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.