The last topic I want to cover in
this lesson is architectural styles. So, let's see
what those architectural styles are. There are certain
design choices that when applied in a given context
regularly result in solutions with superior properties. What
this means is that, compared to other possible alternatives,
these solutions are more elegant, effective, efficient, dependable,
evolve-able, scale-able, and so on. Architectural styles capture exactly
these solutions. They capture idioms that we can
use when designing a system. For a more formal
definition, let's look how Mary Shaw and David Garlan
define a architectural style. They say that an architectural
style defines a family of systems in terms
of a pattern of structural organization; a vocabulary of
components and connectors and constraints on how these components
and connectors can be combined. So in summary we
can say that an architectural style is a named collection
of architectural design decisions applicable in a given context. And I
want to stress that it is important to study and
know these architectural styles for several reasons. Because knowing them allows
us to avoid reinventing the wheel. It also allows us
to choose the right solution to a known problem and in
some cases it even allows us to move on and
discover even more advanced styles if we know the basic ones.
So we should be familiar with architectural styles, what
they are, and in which context they work, and
in which context they do not work. So as
to be able to apply them in the right situations.