Architectural patterns are used to define the architecture of a
Software system. Some of the patterns are as follows:
1. MVC: Model View Controller. This pattern is extensively
used in the architecture of Spring framework.
2. Publish-subscribe: This pattern is the basis of messaging
architecture. In this case messages are published to a
Topic. And subscribers subscribe to the topic of their
interests. Once the message is published to a topic in
which a Subscriber has an interest, the message is
consumed by the relevant subscriber.
3. Service Locator: This design pattern is used in a service
like JNDI to locate the available services. It uses as
central registry to maintain the list of services.
4. n-Tier: This is a generic design pattern to divide the
architecture in multiple tiers. E.g. there is 3-tier
architecture with Presentation layer, Application layer and
Data access layer. It is also called multi-layer design
pattern.
5. Data Access Object (DAO): This pattern is used in
providing access to database objects. The underlying
principle is that we can change the underlying database
system, without changing the business logic. Since
business logic talks to DAO object, there is no impact of
changing Database system on business logic.
6. Inversion of Control (IoC): This is the core of Dependency
Injection in Spring framework. We use this design pattern
to increase the modularity of an application. We keep the
objects loosely coupled with Dependency Injection.