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 …
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.
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 …
Słyszałem, jak fraza jest rzucana na ziemię i dla mnie argumenty brzmią całkowicie szalone (przepraszam, jeśli mam tu słomkę, to nie moja intencja), ogólnie rzecz biorąc idzie coś w stylu: Nie chcesz tworzyć abstrakcji, zanim dowiesz się, jaki jest ogólny przypadek, w przeciwnym razie (1) możesz umieszczać w swoich abstrakcjach …
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 …
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ść …
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 …
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, …
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 …
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 …
tło Mam projekt, który zależy od użycia określonego rodzaju urządzenia sprzętowego, podczas gdy tak naprawdę nie ma znaczenia, kto je tworzy, o ile robi to, czego potrzebuję. Biorąc to pod uwagę, nawet dwa urządzenia, które powinny robić to samo, będą się różnić, jeśli nie zostaną wyprodukowane przez tego samego producenta. …
Rozważmy sytuację, w której klasa implementuje to samo podstawowe zachowanie, metody itd., Ale istnieje wiele różnych wersji tej klasy do różnych zastosowań. W moim szczególnym przypadku mam wektor (wektor geometryczny, a nie listę) i ten wektor może mieć zastosowanie do dowolnej N-wymiarowej przestrzeni euklidesowej (1 wymiar, 2 wymiar, ...). Jak …
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 …
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 …
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 …
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.