ściągnij PDF
1) Wyjaśnij, czym jest wzorzec projektowy Java?
Wzorzec projektowy to niezależna od języka strategia rozwiązywania typowych problemów projektowych zorientowanych obiektowo. Opisuje, jak zorganizować klasy, aby spełnić określone wymagania.
2) Wyjaśnij, czym są kreacyjne wzorce projektowe i wzorce fabryczne?
Kreacyjny wzorzec projektowy : ten wzorzec służy do definiowania i opisywania sposobu tworzenia obiektów w czasie tworzenia instancji klasy.
Wzorzec fabryczny : wzorzec fabryczny służy do tworzenia obiektu bez ujawniania logiki tworzenia klientowi i odwoływania się do nowo utworzonego obiektu przy użyciu wspólnego interfejsu.
3) Który wzorzec projektowy jest używany, aby uzyskać dostęp do elementów obiektu kolekcji w sposób sekwencyjny?
Wzorzec iteratora służy do uzyskiwania dostępu do elementów obiektu kolekcji w sposób sekwencyjny.
4) Kiedy używany jest wzorzec lokalizatora usług?
Kiedy chcemy zlokalizować różne usługi za pomocą JNDI, używamy wzorca lokalizatora usług.
5) Wspomnij, na ile sposobów możesz stworzyć pojedynczy wzorzec?
Pojedyncze obiekty można tworzyć na dwa znane sposoby
- Powolne ładowanie
- Chętne ładowanie
6) Podaj, który wzorzec jest używany, gdy musimy oddzielić abstrakcję od jej implementacji?
Kiedy chcemy oddzielić abstrakcję od jej implementacji, aby dwie mogły się niezależnie różnić, używamy wzorca mostkowego.
7) Wspomnieć, który wzorzec projektowy będzie pomocny przy dodawaniu nowej funkcjonalności do istniejącego obiektu?
Wzorzec dekoratora umożliwia użytkownikowi dodanie nowej funkcjonalności do istniejącego obiektu bez zmiany jego struktury.
8) Wyjaśnij, jak utworzyć klasę Singleton w Javie?
Jest to proces dwuetapowy,
- Najpierw ustaw konstruktor jako prywatny, aby nie można było użyć operatora new do utworzenia wystąpienia klasy
- Zwróć obiekt obiektu, jeśli nie jest pusty, w przeciwnym razie utwórz obiekt i zwróć to samo za pomocą metody.
9) Czy można napisać singleton bezpieczny dla wątków w Javie?
Aby napisać singleton bezpieczny dla wątków w Javie, istnieje wiele sposobów, na przykład za pomocą statycznej instancji pojedynczej zainicjowanej podczas ładowania klasy, pisząc singleton przy użyciu podwójnie sprawdzanego blokowania. Java Enum to najprostszy sposób tworzenia singletonów bezpiecznych dla wątków.
10) Wspomnieć, jak należy opisać wzorzec projektowy?
Aby opisać wzorzec projektowy, należy zadbać o następujące kwestie
- Nazwa i klasyfikacja wzoru
- Problem i rozwiązanie
- Konsekwencje: Należy również zająć się wariantami i alternatywami zależnymi od języka
- Znaj zastosowania: zidentyfikuj zastosowania w rzeczywistych systemach i ich wydajność
11) Wspomnieć, dlaczego dostęp do zmiennej niestatycznej nie jest dozwolony z metody statycznej w Javie?
Nie można uzyskać dostępu do danych niestatycznych z kontekstu statycznego, ponieważ zmienne niestatyczne są skojarzone z określonym wystąpieniem obiektu, podczas gdy statyczne nie są skojarzone z żadnym wystąpieniem.
12) Wspomnieć, który wzorzec jest przydatny, gdy trzeba przesyłać dane z wieloma atrybutami w jednym ujęciu z klienta do serwera?
Transfer Object Pattern jest przydatny, gdy trzeba przesłać dane z wieloma atrybutami w jednym ujęciu z klienta na serwer.
13) Nazwij niektóre jednostki wzorca DAO?
Niektóre podmioty DAO obejmują:
- Konkretna klasa obiektu dostępu do danych
- Interfejs obiektu dostępu do danych
- Obiekt modelu lub obiekt wartości
14) Wspomnij, kiedy możesz użyć wzorca przechwytującego?
Wzorzec przechwytujący jest używany, gdy musisz wykonać pewne przetwarzanie wstępne lub końcowe z żądaniem lub odpowiedzią aplikacji.
15) Wspomnieć, kiedy użyć wzorca fabrycznego?
Można użyć wzoru fabrycznego,
- Gdy klasa nie wie, którą klasę obiektów musi utworzyć
- When class określa swoje podklasy, aby określić, które obiekty mają zostać utworzone
- W języku programowania można użyć wzorca fabrycznego, w którym należy utworzyć obiekt dowolnej z podklas w zależności od podanych danych
16) Wyjaśnij na pojedynczym wzorcu, czy lepiej jest zsynchronizować całą metodę getinstance (), czy wystarczy tylko sekcja krytyczna? Który jest lepszy?
Synchronizacja całej metody getinstance () jest kosztowna i jest potrzebna tylko podczas inicjalizacji na pojedynczej instancji, aby zatrzymać tworzenie kolejnej instancji Singletona. Dlatego lepiej jest synchronizować tylko sekcję krytyczną, a nie całą metodę.
17) Wspomnij, na ile sposobów można napisać klasę pojedynczą w Javie?
Klasę pojedynczą można napisać w Javie na cztery sposoby
- Singleton z publicznym statycznym polem końcowym zainicjowanym podczas ładowania klasy
- Singleton wygenerowany przez statyczną klasę zagnieżdżoną, nazywany również wzorcem pojedynczego posiadacza
- Singleton przez synchronizację metody get instance ()
- Od Java 5 on-wards przy użyciu Enums
18) Wyjaśnij, jak możesz zapobiec tworzeniu kolejnej instancji singletona za pomocą metody clone ()?
Preferowanym sposobem zapobiegania tworzeniu kolejnej instancji singletona jest rezygnacja z implementacji interfejsu Cloneable, a jeśli po prostu wyrzucisz wyjątek z metody clone (), „aby nie tworzyć klonu klasy pojedynczej”.
19) Wspomnij, jaka jest różnica między „rzutem” a „rzutem”?
Słowo kluczowe „Throw” jest używane do jawnego zgłaszania jako wyjątku, podczas gdy „Throws” jest używane do obsługi sprawdzanych wyjątków w celu ponownego poinformowania kompilatora, że wyjątki są obsługiwane. Rzuty muszą być używane w definicji metody, a także podczas wywoływania metody, która wywołuje sprawdzone wyjątki.
20) Wspomnij, które klasy w JDK używają wzorca singleton?
Klasy Java.lang.Runtime używają wzorca singleton w JDK.
21) Wspomnij, jakie są ograniczenia związane z używaniem wzorca singleton?
Wzorzec singleton zapewnia, że klasa ma tylko jedno wystąpienie i zapewnia globalny punkt dostępu do niego. Ale jednocześnie staje się to jego ograniczeniem, ponieważ w przypadku większości klas w aplikacji będziesz musiał utworzyć wiele instancji.
22) Wspomnij, jaka jest różnica między VO a JDO?
Różnica między JDO i VO polega na tym, że JDO jest trwałą technologią, która konkuruje z fasolami encji w tworzeniu aplikacji dla przedsiębiorstw. Umożliwia tworzenie POJO (zwykłe stare obiekty Java) i utrwalanie ich w bazie danych.
Podczas gdy VO oznacza obiekty wartości, reprezentuje abstrakcyjny wzorzec projektowy używany w połączeniu z fasolami encji, jdbc, a być może nawet JDO, aby przezwyciężyć często spotykane problemy związane z izolacją i transakcjami w aplikacjach korporacyjnych.