A quick glance at web development design patterns

BUSINESS TIER

1. Business Delegate

A server side layer that exposes the business layer API to the client components.

Advantages:
Promotes reusability of business API -the business service lookup/access is encapsulated.
Reduces dependency of client objects on the server side business layer API implementation.
Adds a layer between presentation and business layers.

2.Value Object/ Data Transfer Object

A serializable object for transferring data over a network

Advantages:
1. Reduces network traffic because the VO is transferred on the server side and frequent client-server calls are reduced. – fewer remote calls
2. Increases response time

3. Session facade

A layer that acts as an entry point into the business layer and manages the workflow of business objects such as session beans/ entity beans and data access objects. It is itself implemented as a session bean.

INTEGRATION TIER

4. Data Access Object

An object that accesses the database separating the business layer from the data access layer. The business layer is shielded from any change in datasource.
The app can dynamically plug into an appropriate datasource on the fly by selecting an appropriate DAO.
Note that the objects of the business and integration tiers reside in the same JVM.
Reduces dependency of business logic on the data access layer.

FRAMEWORK

5. Model View Controller

The Model-View-Controller design pattern is applicable in situations where the same data (Model) is to be presented in different formats (Views), but is to be managed centrally by a single controlling entity (Controller)
Separates the data representation (model) from the data presentation (view)
Separates the application behavior (Controller) from the data presentation (view) and data representation (model)
The presentation (WML/JSP/XML/HTML) may be presented in different format independent of data.
There is a single controller.

BEHAVIORAL PATTERN

6. Front Controller

Provides a common point of entry into the application.
Unifies and streamlines authentication and authorization and dispatches work to appropriate handler components (manages workflow) use-case wise.

About cuppajavamattiz
Matty Jacob - Avid technical blogger with interests in J2EE, Web Application Servers, Web frameworks, Open source libraries, Relational Databases, Web Services, Source control repositories, ETL, IDE Tools and related technologies.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: