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.

4
czy ten sposób nazywania funkcji jest złą praktyką?
Mam następujący kod: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Myślę, że w ten sposób eliminuję na przykład odpowiedzialność za to, co …

5
Czy możemy całkowicie zastąpić dziedziczenie za pomocą wzorca strategii i wstrzykiwania zależności?
Na przykład: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Ponieważ klasa Duck zawiera wszystkie zachowania (abstrakcyjne), tworzenie nowej klasy MallardDuck(która się rozszerza Duck) nie wydaje się być wymagane. Odniesienie: Wzorzec projektowy Head First, rozdział 1.

6
Jaka jest najlepsza definicja wstrzykiwania zależności?
Za każdym razem, gdy ktoś do mnie dociera i prosi, abym w sposób koncepcyjny zdefiniował wtrysk zależności i wyjaśnił prawdziwe zalety i wady używania DI w projektowaniu oprogramowania. Przyznaję, że mam trudności z wyjaśnieniem koncepcji DI. Za każdym razem muszę im opowiedzieć historię o zasadzie pojedynczej odpowiedzialności, składzie nad spadkiem …


2
Architektura systemu alertów
Chciałbym stworzyć system, który obsługuje wiadomości alarmowe z różnych programów i może przetwarzać te alarmy do mniej wymagających klientów za pośrednictwem poczty elektronicznej. Wszystko to byłoby zawarte w jednej sieci wewnętrznej. Myślę, że chcę, aby podstawowa architektura wyglądała mniej więcej tak: Główny problem, który mam obecnie, to bit „modułu obsługi …

4
Jak dokładnie kompilator odzyskuje po błędzie typu?
Przeczytałem kilka artykułów, artykułów i sekcji 4.1.4, rozdział 4 kompilatorów: Zasady, techniki i narzędzia (2. wydanie) (aka „The Dragon Book”), które wszystkie omawiają temat odzyskiwania błędów kompilatora składniowego. Jednak po eksperymentach z kilkoma nowoczesnymi kompilatorami zauważyłem, że odzyskują one również po błędach semantycznych , a także błędach składniowych. Rozumiem dość …

6
Jak uniknąć niekończącego się iterowania poprzez równie nieoptymalne projekty?
Prawdopodobnie tak jak wielu, często napotykam bóle głowy z problemami projektowymi, w których na przykład istnieje pewien wzór / podejście projektowe, które wydaje się intuicyjnie pasować do problemu i przynosi pożądane korzyści. Bardzo często występuje pewne zastrzeżenie, które utrudnia wdrożenie wzorca / podejścia bez jakiejś pracy, która następnie neguje korzyści …

5
Czy kiedykolwiek można naruszać LSP?
Kontynuuję to pytanie , ale skupiam się z kodu na zasadzie. Z mojego zrozumienia zasady podstawienia Liskowa (LSP), wszystkie metody w mojej klasie bazowej muszą być zaimplementowane w mojej podklasie i zgodnie z tą stroną, jeśli zastąpisz metodę w klasie bazowej i nie robi ona nic ani nie rzuca wyjątek, …

5
Używanie różnych wzorów dla podobnych funkcji
Jestem jedynym programistą w projekcie, który, jak w przypadku każdego projektu oprogramowania, może być zajęty przez kogoś innego w przyszłości. Powiedzmy, że użyłem wzorca X do implementacji funkcji A. Po opracowaniu i ukończeniu tej funkcji, zdaję sobie sprawę, że mogę zaimplementować tę samą funkcję przy użyciu wzorca Y, o której …

4
Java: Jak zaimplementować konstruktor kroków, dla którego kolejność seterów nie ma znaczenia?
Edycja: Chciałbym zaznaczyć, że to pytanie opisuje problem teoretyczny i jestem świadomy, że mogę użyć argumentów konstruktora dla parametrów obowiązkowych lub zgłosić wyjątek czasu wykonywania, jeśli interfejs API jest używany nieprawidłowo. Jednak szukam rozwiązania, które nie wymaga argumentów konstruktora ani sprawdzania czasu wykonywania. Wyobraź sobie, że masz taki Carinterfejs: public …



3
Unikanie konstruktorów z wieloma argumentami
Mam więc fabrykę, która tworzy obiekty różnych klas. Wszystkie możliwe klasy pochodzą od abstrakcyjnego przodka. Fabryka ma plik konfiguracyjny (składnia JSON) i decyduje, którą klasę utworzyć, w zależności od konfiguracji użytkownika. Aby to osiągnąć, fabryka używa boost :: property_tree do parsowania JSON. Przechodzi przez ptree i decyduje, który konkretny obiekt …

3
Czy istnieje wzorzec projektowy do zarządzania głębokimi relacjami wiele do wielu?
Mam problem ze zdefiniowaniem tego wzorca danych, na który natrafiłem podczas pracy nad kilkoma aplikacjami. Składa się ona z: Typ obiektu, który składa się z wielu samych obiektów Drugi typ obiektu, w którym każda instancja „ma wiele” pierwszego obiektu I każdy z podobiektów pierwszego obiektu można modyfikować według każdego powiązania …

4
Zmniejszenie złożoności klasy
Patrzyłem na niektóre odpowiedzi i szukałem w Google, ale nie mogłem znaleźć nic pomocnego (tzn. Nie miałoby to niewygodnych skutków ubocznych). Moim abstrakcyjnym problemem jest to, że mam obiekt i muszę wykonać na nim długą sekwencję operacji; Myślę o tym jak o rodzaju linii montażowej, jak budowanie samochodu. Wierzę, że …

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.