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.

3
Kto powinien kontrolować nawigację w aplikacji MVVM?
Przykład # 1: Mam widok wyświetlany w mojej aplikacji MVVM (użyjmy Silverlight do celów dyskusji) i klikam przycisk, który powinien zabrać mnie na nową stronę. Przykład # 2: Ten sam widok ma inny przycisk, który po kliknięciu powinien otworzyć widok szczegółów w oknie potomnym (oknie dialogowym). Wiemy, że obiekty Command …


5
Dlaczego bazy kodu w programowaniu n-warstwowym mają teraz tyle samo, jeśli nie więcej, kodu JavaScript?
Od dłuższego czasu zajmuję się programowaniem internetowym i gdzieś straciłem orientację, dlaczego robimy to, co robimy dzisiaj (lub jak zaczęliśmy robić rzeczy w ten sposób)? Zacząłem od podstawowego programowania stron ASP i bardzo wcześnie logika wyświetlania i biznesu była na stronie mieszana. Rozwój po stronie klienta był bardzo zróżnicowany (VBScript, …

9
Czy powinniśmy unikać stosowania wzorców projektowych w ciągle zmieniających się projektach?
Mój przyjaciel pracuje dla małej firmy nad projektem, którego każdy programista nienawidziłby: jest zmuszany do jak najszybszego zwolnienia, jest jedynym, który wydaje się dbać o dług techniczny, klient nie ma zaplecza technicznego itp. Opowiedział mi historię, która kazała mi pomyśleć o stosowności wzorców projektowych w projektach takich jak ten. Oto …

3
Jaka jest zasada najmniejszego zdziwienia?
Co w programowaniu nazywa się zasadą najmniejszego zdziwienia? Jak ta koncepcja jest związana z projektowaniem dobrych interfejsów API? Czy dotyczy to tylko programowania obiektowego, czy też przenika inne techniki programowania? Czy ma to związek z zasadą „robienia jednej rzeczy w metodzie i robienia tego dobrze”?

11
Dobrze zaprojektowane / wysokiej jakości oprogramowanie typu open source [zamknięte]
Biorę klasę projektowania oprogramowania, w której powinienem wybrać oprogramowanie open source do analizy z punktu widzenia projektowania oprogramowania. To musi być duży projekt: nie mniej niż 100 000 linii kodu. Naprawdę chciałbym wybrać oprogramowanie, które jest bardzo dobrze zaprojektowane i zaprojektowane tak, aby mieć dobry wgląd w dobre projektowanie oprogramowania. …

2
Wybór odpowiedniego wzoru
Zawsze zdawałem sobie sprawę ze znaczenia stosowania wzorców projektowych. Jestem ciekawy, jak inni programiści wybierają ten najbardziej odpowiedni. Czy korzystasz z szeregu cech (takich jak schemat blokowy), aby pomóc Ci podjąć decyzję? Na przykład: Jeśli obiekty są powiązane, ale nie chcemy określać konkretnej klasy, rozważ opcję Streszczenie Kiedy tworzenie instancji …


9
Dlaczego potrzebujemy klasy Builder podczas wdrażania wzorca Builder?
Widziałem wiele implementacji wzorca Builder (głównie w Javie). Wszystkie mają klasę encji (powiedzmy Personklasę) i klasę konstruktora PersonBuilder. Konstruktor „układa” różne pola i zwraca new Personargument z przekazanymi argumentami. Dlaczego jawnie potrzebujemy klasy konstruktora, zamiast umieszczać wszystkie metody konstruktora w Personsamej klasie? Na przykład: class Person { private String name; …

1
Czy „StringBuilder” jest aplikacją wzorca projektowego Builder?
Czy wzorzec „Konstruktora” ogranicza się do rozwiązania anty-wzorca „konstruktora teleskopowego”, czy też można powiedzieć, że dotyczy również bardziej ogólnego problemu skomplikowanego tworzenia niezmiennych obiektów? StringBuilderKlasy ma słowo „budowniczy” w nazwie, ale to nie ma nic, teleskopowe do czynienia z konstruktorów, to po prostu pomaga nam zebrać wszystkie dane, które musimy …

10
Czy generalnie wysyłasz obiekty lub ich zmienne składowe do funkcji?
Co jest ogólnie przyjętą praktyką między tymi dwoma przypadkami: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } lub function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Innymi słowy, czy ogólnie lepiej jest przekazywać całe obiekty, czy tylko pola, których potrzebujesz?

7
Czy ustawianie flagi w pętli w celu użycia jej później jest zapachem kodu?
Mam fragment kodu, w którym iteruję mapę, dopóki jakiś warunek nie jest spełniony, a następnie użyję tego warunku, aby zrobić więcej rzeczy. Przykład: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { limitFlag = true; break; …

9
Czy są jakieś wzorce projektowe, które są możliwe tylko w dynamicznie pisanych językach, takich jak Python?
Czytałem powiązane pytanie Czy istnieją jakieś wzorce projektowe, które są niepotrzebne w dynamicznych językach, takich jak Python? i pamiętam ten cytat na Wikiquote.org Wspaniałą rzeczą w dynamicznym pisaniu jest to, że pozwala wyrazić wszystko, co jest obliczalne. A systemy typu nie-systemy są zazwyczaj rozstrzygalne i ograniczają cię do podzbioru. Ludzie, …

3
Jakie są wady wzorca ActiveRecord?
Ciekawe, jakie są wady używania wzorca ActiveRecord do dostępu do danych / obiektów biznesowych. Jedyne, co mogę wymyślić z góry, to to, że narusza zasadę pojedynczej odpowiedzialności, ale wzorzec AR jest na tyle powszechny, że sam ten powód nie wydaje się „wystarczająco dobry”, aby uzasadnić nieużywanie go (oczywiście moje widok …

10
Interfejsy w klasie abstrakcyjnej
Mój współpracownik i ja mamy różne opinie na temat relacji między klasami podstawowymi a interfejsami. Jestem przekonany, że klasa nie powinna implementować interfejsu, chyba że z tej klasy można korzystać, gdy wymagana jest implementacja interfejsu. Innymi słowy, lubię widzieć taki kod: interface IFooWorker { void Work(); } abstract class BaseWorker …

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.