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

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...

Asynchronous Vs. Synchronous Communications

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

Solution for the Error : An internal error occured during: "reload maven project"

You might have faced this issue after changing the project name or may be changing project name in pom.xml. When you restart your eclipse it may not launch due to project metadata file is corrupted due to your .project name changes and Maven can not laod your project properly and will displays this error shown above and eclipse console will not be opened. To get rid off this issue follow the solution given below