Design Patterns Flashcards
_______ se používá, když potřebujeme porovnat rozhraní dané například externí
knihovnou. Zatímco návrhový vzor ______ se používá, když můžeme upravit zdrojový kód komponent.
1). Adapter
2). Bridge
_____a Strategy mohou vypadat podobně, protože obojí můžete použít k______ objektu pomocí nějaké akce.
1). Command
2). Parametrizaci
Active object pattern odděluje _______ a _______.
volání
exekuce
Apache Camel je všestranný open-source framework pro tvorbu unit-testů založený na Enterprise Integration patterns.
Ne
Co je GRASP?
Soubor principů, který pomáhá identifikovat prvky systému a jejich zodpovědnosti
Co je hlavním účelem design patternu Mediator?
- Procházení komplexní datové struktury a provádění operací na jejích prvcích.
- Zrušení explictní závislosti mezi komunikujícími objekty
- Rozšíření schopností objektu bez úpravy jeho třídy.
Zrušení explicitní závislosti mezi komunikujícími objekty
Design Pattern Strategy umožňuje změnit přímo vlastnosti objektu
NE
Diamantový problém představuje nejasnost, která vznikne, když třída D dědí ze dvou tříd B a C, které obě dědí ze třídy A. Pokud metoda ze třídy A je překryta ve tříbě B nebo C nebo v obou a ve třídě D překryta není, nastává problém, kterou metodu vlastně třída D používá.
ANO
Ošetření chyb (Error Handling) – která tvrzení jsou pravdivá při práci s výjimkami?
- Ošetření výjimek tam, kde je k tomu dostatek informací
- Zaprotokolování chyby ve většině případů postačuje a není třeba dělat nic jiného
- Nepoužívejte pro program ow control.
- Pokud není dostatek informací pro zpracování výjimky, propaguji výjimku výše
- Je to jeden z mnoha způsobů řešení chybových stavů
- Ošetření výjimek tam, kde je k tomu dostatek informací
- Nepoužívejte pro program ow control.
- Pokud není dostatek informací pro zpracování výjimky, propaguji výjimku výše
Fasáda poskytuje pohodlný přístup k určité části funkčnosti subsystému. Zastřešuje vnitřní volání metod a funkcí.
ANO
Chová se “thread-local” proměnná z pohledu vlákna jako globální proměnná?
Ano
Jak řešit cyklickou závislost?
- Cyklicky závislé entity jsou sloučeny do jedné
- Odpovědnosti entit cyklu jsou přerozděleny, aby se vytvořila nová entita k vyřešení problematické vazby
- Pokud to programovací nástroje umožňují, není potřeba to řešit
Odpovědnosti entit cyklu jsou přerozděleny, aby se vytvořila nová entita k vyřešení problematické vazby
Co je funkce passed jako parametr jiné funkce volané JavaScriptem?
- context
- Closure
- Callback
- Anonymní funkce
Callback
Jaká tvrzení o návrhových vzorech platí:
1). Zavedením abstrakce snižují opakování se implementací
2). Zjednodušují popis konstrukce aplikace
Jaké odpovědnosti má Controller v architekturním vzoru MVC?
1). Zajišťuje přístup k modelu
2). Řídí navigaci (výběr view)
3). Řídí obsluhu akcí uživatele
Jaký je účel architekturního patternu Event-bus?
- Řeší zjišťování a používání služeb v distribuovaných systémech
- Řeší distribuované zpracování paralelních výpočtů a výpočty odolné proti chybám
- Předepisuje logiku práce s perzistentními daty
- Zvládá asynchronní komunikaci jednotlivých komponent systému pomocí událostí
Zvládá asynchronní komunikaci jednotlivých komponent systému pomocí událostí
Jaký je účel architekturního vzoru Master-Slave?
Řešení distribuovaného zpracování paralelních výpočtů a fault-tolerance výpočtů
Jaký návrhový vzor byste použili pro snížení paměťových nároků při práci s mnoha objekty, které mají společné atributy?
- Bridge
- Decorator
- Flyweight
- Marker
Flyweight
Jakým způsobem je možné v Javě řešit vícenásobnou dědičnost?
1). Pomocí kompozice
2). Pomocí dědění z interfaců a využitím defaultních metod
Je z hlediska návrhu omezen počet instancí (počet zanoření) návrhového vzoru Dekorátor?
Ne
K čemu slouží korelační identifikátor?
- Sloučit více zpráv do jedné
- Rozdělení zprávy na jednotlivé prvky
- Jednoznačné přiřazení odpovědi na konkrétní požadavek
- Rozdělení dlouhé zprávy na sekvenci menších zpráv
- Počítání počtu obdržených odpovědí
Jednoznačné přiřazení odpovědi ke konkrétnímu požadavku
Kód je určen v první řadě lidem až v druhé počítačům !
ano