Design Patterns Flashcards

1
Q

_______ 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.

A

1). Adapter
2). Bridge

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

_____a Strategy mohou vypadat podobně, protože obojí můžete použít k______ objektu pomocí nějaké akce.

A

1). Command
2). Parametrizaci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Active object pattern odděluje _______ a _______.

A

volání
exekuce

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Apache Camel je všestranný open-source framework pro tvorbu unit-testů založený na Enterprise Integration patterns.

A

Ne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je GRASP?

A

Soubor principů, který pomáhá identifikovat prvky systému a jejich zodpovědnosti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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.
A

Zrušení explicitní závislosti mezi komunikujícími objekty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Design Pattern Strategy umožňuje změnit přímo vlastnosti objektu

A

NE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

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á.

A

ANO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

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ů
A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Fasáda poskytuje pohodlný přístup k určité části funkčnosti subsystému. Zastřešuje vnitřní volání metod a funkcí.

A

ANO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Chová se “thread-local” proměnná z pohledu vlákna jako globální proměnná?

A

Ano

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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
A

Odpovědnosti entit cyklu jsou přerozděleny, aby se vytvořila nová entita k vyřešení problematické vazby

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Co je funkce passed jako parametr jiné funkce volané JavaScriptem?

  • context
  • Closure
  • Callback
  • Anonymní funkce
A

Callback

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jaká tvrzení o návrhových vzorech platí:

A

1). Zavedením abstrakce snižují opakování se implementací
2). Zjednodušují popis konstrukce aplikace

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jaké odpovědnosti má Controller v architekturním vzoru MVC?

A

1). Zajišťuje přístup k modelu
2). Řídí navigaci (výběr view)
3). Řídí obsluhu akcí uživatele

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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í
A

Zvládá asynchronní komunikaci jednotlivých komponent systému pomocí událostí

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Jaký je účel architekturního vzoru Master-Slave?

A

Řešení distribuovaného zpracování paralelních výpočtů a fault-tolerance výpočtů

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

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
A

Flyweight

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Jakým způsobem je možné v Javě řešit vícenásobnou dědičnost?

A

1). Pomocí kompozice
2). Pomocí dědění z interfaců a využitím defaultních metod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Je z hlediska návrhu omezen počet instancí (počet zanoření) návrhového vzoru Dekorátor?

A

Ne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

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í
A

Jednoznačné přiřazení odpovědi ke konkrétnímu požadavku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Kód je určen v první řadě lidem až v druhé počítačům !

A

ano

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Které z následujících design patternů byste použili pro přehrávání hudby v aplikaci?

24
Q

Které z následujících design patternů patří do kategorie Behavioral Patterns?

  • Proxy
  • Command
  • Chain of responsibility
  • Decorator
  • Observer
A

1). Observer
2). Chain of responsibility
3). Command

25
Které z následujících design patternů patří do kategorie Creational Patterns? - Abstract factory - Chain of responsibility - Dependency injection - Decorator - Singleton
1). Dependency injection 2). Singleton 3). Abstract factory
26
Které z následujících design patternů řeší různé způsoby komunikace mezi odesílatelem a příjemcem? - Mediator - Command - Iterator - Chain of responsibility - Observer
1). Mediator 2). Command 3). Chain of responsibility 4). Observer
27
Které z následujících design patternů vyznává princip "nic nesháněj, ať se postará někdo jiný?"
Dependency injection
28
Které z následujících tvrzení o Prototype pattern jsou pravdivé? - Zavádí rozhraní pro vytváření souvisejících nebo závislých projektů. - Samotná třída se stará o vytvoření své kopie. - Kopie přebírá všechny reference z prototypu. - Daná třída má v celém systému pouze jednu instanci. - Pokud není objekt od začátku potřeba, vytvoří se, až když je potřeba.
- Samotná třída se stará o vytvoření své kopie. - Kopie přebírá všechny reference z prototypu.
29
Které z níže uvedených endopointů podporuje Apache Camel? 1). FTP server 2). JMS queue 3). File 4). Web service
všechny 1). FTP server 2). JMS queue 3). File 4). Web service
30
Který pattern popisuje chování v případě neschopnosti doručit zprávu
Dead Letter Channel
31
Lze v JavaScriptu pracovat s dědičností?
Ano
32
Může být na jeden objekt aplikováno více návrhových vzorů?
Ano
33
Může být více architekturních vrstev nasazeno na jedné fyzické vrstvě? Například vrstva obchodní logiky a vrstva datová může být na jednom serveru?
Ano
34
Návrhový vzor Composite je dobré použít v případě:
Nutnosti procházení stromových struktur a operací nad nimi
35
Pattern Resequencer řeší monitoring messaging systému?
Ne
36
Plánování řeší _____ management, protože zdroje jsou ____ a může být také vhodné ____ férovost.
1). Task 2). Omezené 3). Maximalizovat
37
Je u Message History patternu pravda, že komunikace je vždy uložena v centrálním úložišti?
Ne
38
Pomocí kterých funkčností Javascriptu lze asynchroně zpracovávat kód?
1). Callback 2). promise 3). Async / Await
39
Pomocné proměnné - Když už pomocnou proměnnou použijete, tak:
1). by její název měl jasně říkat co je v ní uložené 2). Ji použijete pouze k jednomu účelu
40
Pro použití Apache Camel je zapotřebí JDK a samotný Apache Camel můžeme do projektu vložit jako Maven závislosti.
Ano
41
Seřaďte vzestupně následující kroky tak, jak typicky s CamelContext pracujeme:
1). Vytvoření instance CamelContext 2). Přidání endopoints 3). Přidání routes (směřování) 4). Zavolání CamelContext.start() 5). Zavolání CamelContext.stop()
42
Smí být jeden návrhový vzor použit v aplikací vícekrát?
Ano
43
Synchronizační primitiva Spojte dvojice: Barrier Semaphore Mutext Monitor * Omezený počet vláek může vstoupit do kritické sekce * Pouze jedno vlákno může vstoupit do kritické sekce (získat přístup) * Vlákna musí čekat dokud není dosažen daný počet čekajících vláken * Pouze jedno vlákno může vykonat svoji práci uvnitř tohoto prvku
Barrier - Vlákna musí čekat dokud není dosažen daný počet čekajících vláken Semaphore - Omezený počet vláken může vstoupit do kritické sekce - získat přístup Mutex - Pouze jedno vlákno může vstoupit do kritické sekce - získat přístup Monitor - Pouze jedno vlákno může vykonat svoji práci uvnitř tohoto prvku
44
Thread pool concurrency pattern: - efektivně řeší správu vláken - používá vždy jedno vlákno - nemůže pracovat s prioritou úkolu - zavádí opakovaně použitelná vlákna
- efektivně řeší správu vláken - zavádí opakovaně použitelná vlákna
45
U patternu Publish-Subscribe Channel platí následující
Zprávu dostanou vždy všichni příjemci přihlášení k odběru fronty
46
V ______ je klient odstíněn od volání konstruktoru. Návrhové vzory ______ řeší problémy související s vytvářením objektů v systému
1). Abstrakt faktory 2). Creational patterns
47
V Apache Camel můžeme routing and mediation rules definovat v různých DSL (např. Java-based Fluent API, Spring,....)
Ano
48
Existuje z hlediska návrhu omezení počtu instancí (počet vnoření) design pattern Decorator?
Ne
49
Scheduling se týká správy ______ , protože zdroje jsou _______ a férovost _______ může být také vhodná.
- úkolu - limitovány - maximalizace
50
Dá se v Javascriptu pracovat s dědičností?
Ano
51
Lze na jeden objekt použít více design patterns?
Ano
52
Řeší pattern Resequencer monitorování systému zasílání zpráv?
Ne
53
Lze na jediné fyzické vrstvě nasadit více architektonických vrstev? Mohou být například business vrstva a datová vrstva na stejném serveru?
Ano
54
Které z následujících architektonických vrstev se používají v architektuře třívrstvého systému? - Perzistentní/datová vrstva - Business vrstva - Udržovací vrstva - Integrační vrstva - Prezentační vrstva
- Perzistentní / datová vrstva - Business vrstva - Prezentační vrstva
55
Které z následujících architektonických vrstev se používají v architektuře třívrstvého systému? - Perzistentní/datová vrstva - Business vrstva - Udržovací vrstva - Integrační vrstva - Prezentační vrstva
- Perzistentní / datová vrstva - Business vrstva - Prezentační vrstva
56
V Apache Camel můžeme denovat pravidla směrování a zprostředkování v různých DSL (např. Java-based Fluent API, Spring, ...)
Ano