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?

A

Singleton

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
Q

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

  • Abstract factory
  • Chain of responsibility
  • Dependency injection
  • Decorator
  • Singleton
A

1). Dependency injection
2). Singleton
3). Abstract factory

26
Q

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
A

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

27
Q

Které z následujících design patternů vyznává princip “nic nesháněj, ať se postará někdo jiný?”

A

Dependency injection

28
Q

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.
A
  • Samotná třída se stará o vytvoření své kopie.
  • Kopie přebírá všechny reference z prototypu.
29
Q

Které z níže uvedených endopointů podporuje Apache Camel?

1). FTP server
2). JMS queue
3). File
4). Web service

A

všechny

1). FTP server
2). JMS queue
3). File
4). Web service

30
Q

Který pattern popisuje chování v případě neschopnosti doručit zprávu

A

Dead Letter Channel

31
Q

Lze v JavaScriptu pracovat s dědičností?

A

Ano

32
Q

Může být na jeden objekt aplikováno více návrhových vzorů?

A

Ano

33
Q

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?

A

Ano

34
Q

Návrhový vzor Composite je dobré použít v případě:

A

Nutnosti procházení stromových struktur a operací nad nimi

35
Q

Pattern Resequencer řeší monitoring messaging systému?

A

Ne

36
Q

Plánování řeší _____ management, protože zdroje jsou ____ a může být také vhodné ____ férovost.

A

1). Task
2). Omezené
3). Maximalizovat

37
Q

Je u Message History patternu pravda, že komunikace je vždy uložena v centrálním úložišti?

A

Ne

38
Q

Pomocí kterých funkčností Javascriptu lze asynchroně zpracovávat kód?

A

1). Callback
2). promise
3). Async / Await

39
Q

Pomocné proměnné - Když už pomocnou proměnnou použijete, tak:

A

1). by její název měl jasně říkat co je v ní uložené
2). Ji použijete pouze k jednomu účelu

40
Q

Pro použití Apache Camel je zapotřebí JDK a samotný Apache Camel můžeme do projektu vložit jako Maven závislosti.

A

Ano

41
Q

Seřaďte vzestupně následující kroky tak, jak typicky s CamelContext pracujeme:

A

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
Q

Smí být jeden návrhový vzor použit v aplikací vícekrát?

A

Ano

43
Q

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
A

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
Q

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
A
  • efektivně řeší správu vláken
  • zavádí opakovaně použitelná vlákna
45
Q

U patternu Publish-Subscribe Channel platí následující

A

Zprávu dostanou vždy všichni příjemci přihlášení k odběru fronty

46
Q

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

A

1). Abstrakt faktory
2). Creational patterns

47
Q

V Apache Camel můžeme routing and mediation rules definovat v různých DSL (např. Java-based Fluent API, Spring,….)

A

Ano

48
Q

Existuje z hlediska návrhu omezení počtu instancí (počet vnoření) design pattern Decorator?

A

Ne

49
Q

Scheduling se týká správy ______ , protože zdroje jsou _______ a férovost _______ může být také vhodná.

A
  • úkolu
  • limitovány
  • maximalizace
50
Q

Dá se v Javascriptu pracovat s dědičností?

A

Ano

51
Q

Lze na jeden objekt použít více design patterns?

A

Ano

52
Q

Řeší pattern Resequencer monitorování systému zasílání zpráv?

A

Ne

53
Q

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?

A

Ano

54
Q

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
A
  • Perzistentní / datová vrstva
  • Business vrstva
  • Prezentační vrstva
55
Q

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
A
  • Perzistentní / datová vrstva
  • Business vrstva
  • Prezentační vrstva
56
Q

V Apache Camel můžeme de novat pravidla směrování a zprostředkování v různých DSL (např. Java-based Fluent API, Spring, …)

A

Ano