Font size
WorksheetsZSWI/ZSW-E - architecture, design patterns
Total questions: 10
Worksheet time: 8mins
Ve vztahu klient-poskytovatel / In the client-provider relationship
klient volá poskytovatele, který vykoná nějakou službu / the client calls the provider to perform some service
klient zná rozhraní poskytovatele / the client knows the provider's interface
poskytovatel musí znát rozhraní klienta / the provider must know the client interface
se mohou obě strany vzájemně volat / both parties can call each other
Při návrhu architektury / When designing an architecture
je nutné experimentovat a posléze vybrat nejlepší návrh / it is necessary to experiment and then choose the best design
se držíme osvědčených postupů v dané doméně / we adhere to best practices in the domain
je lepší volit monolitické řešení / it is better to choose a monolithic solution
se zeptáme především vývojářů, jakou architekturu by volili / we will primarily ask developers what architecture they would choose
Třívrstvá architektura / Three-layer architecture
je stejná jako MVC architektura / is the same as MVC architecture
vylučuje vertikální členění do oddílů / excludes vertical partitioning
předpokládá, že datová a prezentační vrstva spolu přímo nekomunikují / it assumes that the data and presentation layers do not communicate directly with each other
zahrnuje datovou, aplikační a prezentační vrtsvu / includes the data, application and presentation layers
Aktivní datové úložiště / Active data storage (Blackboard)
je aktivováno pouze přímým požadavkem klienta / it is only activated by a direct request from the client
posílá oznámení klientům o změně dat, která je zajímají / sends notifications to clients about changes in data that interest them
je populární v expertních systémech / is popular in expert systems
může provádět další změny v datech nezávisle na klientech / can make further changes to the data independent of clients
Stavový prostor třídy / The state space of a class
je souhrn všech povolených stavů libovolné instance třídy / is the sum of all allowed states of any instance of the class
je definován přechodovými metodami / is defined by transition methods
odpovídá atributům dané třídy / corresponds to the attributes of the given class
odpovídá vybraným atributům třídy s omezeným rozsahem hodnot / odpovídá vybraným atributům třídy s omezeným rozsahem hodnot
Neměnná třídy / Class immutable
je podmínka, kterou musí v každém okamžiku naplnit každá instance dané třídy / is a condition that every instance of a given class must satisfy at any time
omezuje stavový prostor /limits the state space
jsou všechny konstanty dané třídy / are all constants of the given class
je jedinečná instance dané třídy / is a unique instance of the given class
Předběžná podmínka třídy / Class prerequisite
definuje dopředné omezení hodnot vybraných atributů třídy / defines a forward constraint on the values of selected class attributes
se vztahuje k operacím třídy / refers to class operations
musí být pravdivá na začátku operace / must be true at the start of the operation
je součástí kontraktu s klientem / is part of the contract with the client
Návrhový vzor / Design pattern
je ověřený způsob řešení návrhových problémů / is a proven method of solving design problems
říká, jak se problém řeší zejména v objektově orientovaném prostředí / tells how the problem is solved especially in an object-oriented environment
je platným a jediný řešením pro známe návrhové problémy / is a valid and only solution to known design problems
je implementace návrhových problémů v jazyce Java / is an implementation of design problems in Java
Open close princip(le)
vysvětluje, jak minimalizovat změny při přidávání funkcionalit do již existujícího zdrojového kódu / explains how to minimize changes when adding functionality to already existing source code
říká, že entity jsou otevřené vůči rozšiřování, ale uzavřené vůči modifikacím / says that entities are open to extension but closed to modification
vysvětluje, jak pracovat s modifikátory viditelnosti private, protected a public / explains how to work with the private, protected, and public visibility modifiers
využívá prostředky abstrakce jako jsou abstraktní třídy a rozhraní / uses means of abstraction such as abstract classes and interfaces
Inversion of Control (Dependency injection)
říká, že nechceme těsnou vazbu mezi vysokoúrovňovými a nízkoúrovňovými třídami / says that we don't want tight coupling between high-level and low-level classes
řeší flexibilitu kódu / addresses code flexibility
zavádí abstraktní úroveň mezi vysoko- a nízkoúrovňovou třídu / introduces an abstraction level between high- and low-level classes
říká, že je třeba kontrolovat kód inverzně-obráceně, tedy nejprve napsat testy / says to check the code inversely, i.e. write the tests first
