Skip to main content

Design Patterns in Java

Design pattern are basic building block to efficiently design application as per requirement.
Broadly we divide it into 3 categories.
  • Creational
  • Structural
  • Behavioral.


Creational
  • Singleton
  • Prototype
  • Factory
  • Factory method
  • abstract factory
  • Builder


Creational


Creational pattern are based upon strategy we apply to control creation of object.
If we want to create object which can't be created again we call it singleton. Its like resource which we don't want be duplicated like connection.we make constructor private to achieve our objective.


Below patterns comes under Creational design pattern.




Structural (A,B,C,D,F,F,P)
  • Adapter,
  • bridge,
  • Composite, 
  • Decorator, 
  • Facade,
  • Flyweight, 
  • Proxy


Behavioural (MM,II,SS,CC,TV,O)



  • Command, 
  • Chain of responsibility,
  • Mediator, 
  • Memento,
  • Iterator, 
  • Interpreter,
  • Strategy,
  • State, 
  • Template, 
  • Visitor, 
  • Observer



J2EE Design Patern (Apart from GORM)


  • MVC ,
  • Front controller , 
  • DAO , 
  • Service locator , 
  • Business delegate




Sample Code:


package com.java.singleton;

public class DemoSingleton {
    
    private static DemoSingleton instanceOfSingleton;
    /**
     * Create private constructor
     */
    private DemoSingleton(){
        
    }
    /**
     * Create a static method to get instance.
     */
    public static DemoSingleton getInstance(){
        if(instanceOfSingleton == null){
            instanceOfSingleton = new DemoSingleton();
        }
        return instanceOfSingleton;
    }
    
    public void getSomeResource(){
        // do something here
        System.out.println(" get me ...");
    }
    
    public static void main(String a[]){
        DemoSingleton ds = DemoSingleton.getInstance();
        ds.getSomeResource();
    }
}


Factory Pattern

Factory of what? Of classes. In simple words, if we have a super class and n sub-classes, and based on data provided, we have to return the object of one of the sub-classes, we use a factory pattern.























Comments

Popular posts from this blog

Conversion from Clob To String in java and Vice versa

/***reading Clob data from oracle table and setting to Pojo**/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import oracle.sql.CLOB;

import com.poc.one.pojo.StagedMessage;

public class MessageDao {
private static String url = "jdbc:oracle:thin:@172.22.22.198:1521:ORACLE";
private static String username = "ABC123";
private static String password = "ABC123";


public  List readClobToBO() throws Exception {

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn
.prepareStatement("SELECT ID, STORE_ID, MESSAGE_DATA FROM STAGED_MESSAGE ");
ResultSet resultSet = stmt.executeQuery();
List msgList= new ArrayList();

while (resultSet.next()) {

StagedMessage message = new StagedMessage();

message.setId(resultSet.getInt(1));
message.setStoreId(r…

Portable Java 8/ JDK8 setup without admin rights

Some time we got machine to work where we don't have access rights to install anything or if you do not want to install. You can get latest jdk running by this trick. Just follow step step & do comment if you like it.

Step by Step details to get running java from .exe setup without any admin rights. Get portable 7 zip from portableapps.comdownload java 8 from oracle  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlopen 7 zip & extract jdk-8u102-windows-x64.exeyou will see below folders                .data                .pdata                .rdata                .reloc                .rsrc                .text                CERTIFICATE

          5.Go inside E:\jdk-8u102-windows-x64\.rsrc\1033\JAVA_CAB10you will find 111 file.

         6.extract it it some folder where you can find tools.zip again extract that to some folder say Java & copy it to very first folder of setup along with .data,.rsrc etc.
         7.Go to folder where you have co…

Multi Threading , Producer consumer problem in Java

Multi threading is topic which is always fascinating for java developer. I feel its more about practical the theory. So here i wanted to present sample examples which clear understanding for several multi threading concept.

In Theory basically thread which is light weight process.Thread shares mostly same memory space.
I said mostly because there is some space called thread local which is not common to threads & separate for each thread. We create thread whenever we wanted to use multicore of processor although that doesn't mean single core cant use it. In single core context switching works among different running thread.

for example suppose there is website which is showing latest price as well as offer as well as doing order booking all these things can be assigned to different thread to provide parallel processing.



There are 2 ways for creating a thread.

Extend a thread & Implement a Runnable class. Extending a class is little avoided since it closed possibility for e…