Skip to main content

Design Patterns in Java


What are the design patterns in Java?
In j2ee they have 15 Design Pattern:
Presentation Tier:
1.Intercepting Filter
2. Front Controller
3. View Helper
4. Composite View
5. Service to Worker
6. Dispatcher View


Business Tier:
7. Business Delegate
8. Transfer Object
9. Session Facade
10. Service Locator
11. Transfer Object
12. Value List Handler
13. Composite Entity


Integration Tier:
14.Service Activator
15 Data Access Object


Programming idioms are more language specific than design patterns. A Design pattern is a documentation of a time-tested solution which keeps cropping up every now and then within a particular context.

A Design Pattern is mostly not language specfic thought there could be a few design patterns which are language specific(I am not aware of any Java-specific design pattern). A design pattern encapsulates OO principles in a structure and if a Object-Oriented language provides support to these principles then you can use the design pattern in that language. The
structure remains the same, its the code that changes and that is language specific.


To answer exactly as to "what are the design patterns in Java" I guess I can say all design patterns which encapsulate the OO principles supported by Java can be implemented in Java and it would be useful if the problem for which that design pattern was documented does crop up in the context of using the language. As Martin fowler says "A pattern is an idea that has been useful in one practical context and will probably be useful in others." (the context here does'nt necessarily mean a language though). Design Patterns are reusable elements of Object Oriented software not of any particular language, so just start studying about design patterns in general and u will know for urself how to use it in Java.



Good starting points:
(these are my personal opinions, I have'nt read all the books listed). Most of the material on Design patterns concentrate on the GoF(Gang of Four) patterns.



1) If you want a good description of all these patterns and if you are FAMILIAR WITH UI in Java then the book JAVA DESIGN PATTERNS by JAMES.W.COOPER is a good start.


2) The best start, I believe would be the HEAD FIRST DESIGN PATTERNS. Though the book does'nt cover all the patterns in detail it makes for a very good kickstart. Fast and Fun read. If you are only used to terse text you may not like this cool book.


3) The mother of all: DESIGN PATTERNS by erich gama et all. This is the book which revolutionized the usage of design patterns in the software or object-oriented realm. The best, terse and simply awesome. All examples in this book are in C++ unlike the above two mentioned.


PATTERNS OF SOFTWARE ARCHITECTURE 1 and 2 are considered as major works in this field.

Comments

Popular posts from this blog

Asynchronous Vs. Synchronous Communications

Synchronous (One thread):   1 thread -> |<---A---->||<----B---------->||<------C----->| Synchronous (multi-threaded):   thread A -> |<---A---->| \ thread B ------------> ->|<----B---------->| \ thread C ----------------------------------> ->|<------C----->|

WebSphere MQ Interview Questions

What is MQ and what does it do? Ans. MQ stands for MESSAGE QUEUEING. WebSphere MQ allows application programs to use message queuing to participate in message-driven processing. Application programs can communicate across different platforms by using the appropriate message queuing software products. What is Message driven process? Ans . When messages arrive on a queue, they can automatically start an application using triggering. If necessary, the applications can be stopped when the message (or messages) have been processed. What are advantages of the MQ? Ans. 1. Integration. 2. Asynchrony 3. Assured Delivery 4. Scalability. How does it support the Integration? Ans. Because the MQ is independent of the Operating System you use i.e. it may be Windows, Solaris,AIX.It is independent of the protocol (i.e. TCP/IP, LU6.2, SNA, NetBIOS, UDP).It is not required that both the sender and receiver should be running on the same platform What is Asynchrony? Ans. With messag

Advantages & Disadvantages of Synchronous / Asynchronous Communications?

  Asynchronous Communication Advantages: Requests need not be targeted to specific server. Service need not be available when request is made. No blocking, so resources could be freed.  Could use connectionless protocol Disadvantages: Response times are unpredictable. Error handling usually more complex.  Usually requires connection-oriented protocol.  Harder to design apps Synchronous Communication Advantages: Easy to program Outcome is known immediately  Error recovery easier (usually)  Better real-time response (usually) Disadvantages: Service must be up and ready. Requestor blocks, held resources are “tied up”.  Usually requires connection-oriented protocol