Pytania otagowane jako design-patterns

Wzorzec projektowy jest ogólnym rozwiązaniem wielokrotnego użytku dla często występującego problemu w projektowaniu oprogramowania.


16
Jaki jest najczęściej używany wzór projektowy? [Zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …

2
Dlaczego budowniczy powinien być klasą wewnętrzną zamiast własnego pliku klasy?
Wiele Builder Patternprzykładów tworzy Builderwewnętrzną klasę obiektu, który buduje. Ma to jakiś sens, ponieważ wskazuje, co Builderbuduje. Jednak w języku typowanym statycznie wiemy, co się Builderkompiluje. Z drugiej strony, jeśli Builderjest to klasa wewnętrzna, powinieneś wiedzieć, jaką klasę Builderbuduje, nie zaglądając do wnętrza Builder. Ponadto posiadanie konstruktora jako klasy wewnętrznej …

6
Czy klasa może używać własnej metody publicznej?
tło Obecnie mam sytuację, w której mam obiekt przesyłany i odbierany przez urządzenie. Ten komunikat ma kilka konstrukcji, takich jak: public void ReverseData() public void ScheduleTransmission() ScheduleTransmissionMetoda wymaga , aby wywołać ReverseDatametodę, gdy jest to tzw. Są jednak chwile, w których będę musiał wywoływać ReverseDatazewnętrznie (i powinienem całkowicie dodać poza …

5
Dlaczego używanie konstruktorów w ustawieniach nie stało się powszechnym wzorcem?
Akcesoria i modyfikatory (znane również jako setery i gettery) są przydatne z trzech głównych powodów: Ograniczają dostęp do zmiennych. Na przykład można uzyskać dostęp do zmiennej, ale nie można jej modyfikować. Sprawdzają poprawność parametrów. Mogą powodować pewne działania niepożądane. Uniwersytety, kursy online, samouczki, artykuły na blogach i przykłady kodu w …

4
Uzasadniona „prawdziwa praca” w konstruktorze?
Pracuję nad projektem, ale wciąż uderzam w przeszkodę. Mam określoną klasę (ModelDef), która jest zasadniczo właścicielem złożonego drzewa węzłów zbudowanego przez analizowanie schematu XML (think DOM). Chcę przestrzegać dobrych zasad projektowania (SOLID) i upewnić się, że powstały system jest łatwo testowalny. Mam zamiar używać DI do przekazywania zależności do konstruktora …

3
Czy warstwa usługi powinna wychwytywać wszystkie wyjątki dao i owijać je jako wyjątki usługi?
Mam trójwarstwową aplikację sieciową Spring: dao, serwis i kontrolery. Kontroler nigdy nie wywołuje bezpośrednio dao, robi to poprzez warstwę usługi. W tej chwili przez większość czasu, jeśli istnieje wyjątek dao (środowisko wykonawcze), który nie jest obsługiwany, zostanie przechwycony przez stronę JSP pokazującą komunikat o błędzie użytkownikowi końcowemu. Czy warstwa usługi …

2
Wzorzec projektowy do sprawdzania poprawności danych
Jaki byłby najlepszy wzór dla tego problemu: Mam obiekt A. Obiekt A można zarejestrować lub usunąć z bazy danych w zależności od żądania użytkownika. Sprawdzanie poprawności danych odbywa się przed rejestracją lub usunięciem obiektu. Istnieje zestaw reguł do sprawdzenia przed zarejestrowaniem obiektu oraz inny zestaw reguł do usunięcia. Niektóre z …

5
sukces: / niepowodzenie: bloki vs ukończenie: blok
Widzę dwa typowe wzorce bloków w Objective-C. Jedna to para sukcesów: / porażka: bloki, druga to pojedyncze zakończenie: blok. Załóżmy na przykład, że mam zadanie, które zwróci obiekt asynchronicznie, a to zadanie może się nie powieść. Pierwszy wzór to -taskWithSuccess:(void (^)(id object))success failure:(void (^)(NSError *error))failure. Drugi wzór to -taskWithCompletion:(void (^)(id …

11
Wybierz wysiłek związany z projektowaniem kodu lub lenistwo w świecie Banku
Przez dwa lata pracowałem w wielkim banku inwestycyjnym. Zrobiłem kilka projektów technicznych z myślą o stworzeniu kodu najbardziej zoptymalizowanego, z poszanowaniem dostosowanych dobrych wzorców projektowych, zasady SOLID, prawa demeter i unikając wszelkiego rodzaju duplikatów kodów ... Kiedy dostawa w produkcji => zero błędów, wszystko stało się zgodnie z oczekiwaniami. Ale …

8
Jak wdrożyć zasadę DRY przy użyciu słowa kluczowego „using”?
Rozważ te metody: public List<Employee> GetAllEmployees() { using (Entities entities = new Entities()) { return entities.Employees.ToList(); } } public List<Job> GetAllJobs() { using (Entities entities = new Entities()) { return entities.Jobs.ToList(); } } public List<Task> GetAllTasksOfTheJob(Job job) { using (Entities entities = new Entities()) { return entities.Tasks.Where(t => t.JobId == …

5
W jaki sposób inny popularny język unikałby konieczności używania wzorca fabrycznego, zarządzając podobną złożonością jak w Javie / Java EE?
Wzorzec fabryczny (a przynajmniej użycie FactoryFactory..) to podstawa wielu żartów, jak tutaj . Oprócz posiadania pełnych i „kreatywnych” nazw, takich jak RequestProcessorFactoryFactory.RequestProcessorFactory , czy jest coś zasadniczo nie tak z wzorcem fabrycznym, jeśli musisz programować w Javie / C ++ i istnieje przypadek użycia dla Abstract_factory_pattern ? W jaki sposób …


6
Czy luźne sprzęgło bez skrzynek nie stanowi wzoru?
Luźne sprzężenie jest dla niektórych deweloperów świętym graalem dobrze zaprojektowanego oprogramowania. Z pewnością dobrą rzeczą jest uelastycznienie kodu w obliczu zmian, które mogą nastąpić w dającej się przewidzieć przyszłości, lub uniknięcie powielania kodu. Z drugiej strony wysiłki na rzecz luźnego łączenia komponentów zwiększają stopień pośredniości w programie, zwiększając w ten …

4
Czy programowanie funkcjonalne jest realną alternatywą dla wzorców wstrzykiwania zależności?
Niedawno czytałem książkę zatytułowaną Programowanie funkcjonalne w języku C # i przychodzi mi do głowy, że niezmienna i bezstanowa natura programowania funkcjonalnego osiąga wyniki podobne do wzorców wstrzykiwania zależności i jest prawdopodobnie jeszcze lepszym podejściem, szczególnie w odniesieniu do testów jednostkowych. Byłbym wdzięczny, gdyby ktokolwiek, kto ma doświadczenie w obu …

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.