Friday, 30 August 2013

Iterator Design Pattern - Implementation


Click here to watch in Youtube : https://www.youtube.com/watch?v=uRiKSJAnmeA

Click the below Image to Enlarge
Iterator Design Pattern - Implementation

















IteratorPatternDemo.Java

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class IteratorPatternDemo
{

public static void main( String[] args )
{
ArrayList<String> listOfCountries = new ArrayList<String>();
listOfCountries.add("India");
listOfCountries.add("US");
listOfCountries.add("Japan");
listOfCountries.add("France");

Iterator<String> iterator = listOfCountries.iterator();
System.out.println("Iterator type for the Datastructure ArrayList : "+iterator.toString());
System.out.println();
while( iterator.hasNext() )
{
String countryName = iterator.next();
System.out.println("Country Name : " + countryName);
}
System.out.println();
Set<String> setOfCountries = new HashSet<String>();
setOfCountries.add("India");
setOfCountries.add("US");
setOfCountries.add("Japan");
setOfCountries.add("France");
Iterator<String> iterator1 = setOfCountries.iterator();
System.out.println("Iterator type for the Datastructure HashSet : "+iterator1.toString());
System.out.println();
while( iterator1.hasNext() )
{
String countryName = iterator1.next();
System.out.println("Country Name : " + countryName);
}

}

}

Output

Iterator type for the Datastructure ArrayList : java.util.AbstractList$Itr@12dacd1

Country Name : India
Country Name : US
Country Name : Japan
Country Name : France

Iterator type for the Datastructure HashSet : java.util.HashMap$KeyIterator@30c221

Country Name : France
Country Name : US
Country Name : Japan
Country Name : India

Intercepting Filter Design Pattern - Implementation


Click here to watch in Youtube : https://www.youtube.com/watch?v=sWtchigtgXk

Click the below Image to Enlarge
Intercepting Filter Design Pattern - Implementation






















Filter.Java

public interface Filter
{
public void processRequest(String request);
}

AuthenticationFilter.java

public class AuthenticationFilter implements Filter
{

@Override
        public void processRequest( String request )
        {
System.out.println("Authenticating the request by AuthenticationFilter : " + request);
       
        }

}

LoggingFilter.java

public class LoggingFilter implements Filter
{
@Override
        public void processRequest( String request )
        {
System.out.println("Request Tracking is done by LoggingFilter : " + request);        
        }
}

Target.java

public class Target
{
public void processRequest( String request )
{
System.out.println("Process the Request by Target Class: " + request);
}
}

FilterChain.java

import java.util.ArrayList;
import java.util.List;

public class FilterChain
{
private List<Filter> filters = new ArrayList<Filter>();
private Target       target;

public void addFilter( Filter filter )
{
filters.add(filter);
}

public void execute( String request )
{
for( Filter filter : filters )
{
filter.processRequest(request);
}
target.processRequest(request);
}

public void setTarget( Target target )
{
this.target = target;
}
}

FilterManager.java

public class FilterManager
{
FilterChain filterChain;

public FilterManager( Target target )
{
filterChain = new FilterChain();
filterChain.setTarget(target);
}

public void setFilter( Filter filter )
{
filterChain.addFilter(filter);
}

public void filterRequest( String request )
{
filterChain.execute(request);
}
}

Client.java

public class Client
{
FilterManager filterManager;

public void setFilterManager( FilterManager filterManager )
{
this.filterManager = filterManager;
}

public void sendRequest( String request )
{
filterManager.filterRequest(request);
}

public static void main( String[] args )
{
FilterManager filterManager = new FilterManager(new Target());
filterManager.setFilter(new AuthenticationFilter());
filterManager.setFilter(new LoggingFilter());
Client client = new Client();
client.setFilterManager(filterManager);
client.sendRequest("HOME");

}

}

Output

Authenticating the request by AuthenticationFilter : HOME
Request Tracking is done by LoggingFilter : HOME


Front Controller Design Pattern - Implementation


Click here to watch in Youtube : https://www.youtube.com/watch?v=NWNNsbMsrq4

Click the below Image to Enlarge
Front Controller Design Pattern - Implementation - Class Diagram























UserView.java

public class UserView
{
public void show()
{
System.out.println("Displaying User Page");
}
}


SalaryView.java

public class SalaryView
{
public void show()
{
System.out.println("Displaying Salary Page");
}
}


AccountView.java

public class AccountView
{
public void show()
{
System.out.println("Displaying Account Page");
}
}

Dispatcher.java

public class Dispatcher
{
private SalaryView  salaryView;
private UserView    userView;
private AccountView accountView;

public Dispatcher()
{
salaryView = new SalaryView();
userView = new UserView();
accountView = new AccountView();
}

public void dispatch( String request )
{
if( request.equalsIgnoreCase("USER") )
{
userView.show();
}
else if( request.equalsIgnoreCase("ACCOUNT") )
{
accountView.show();
}
else
{
salaryView.show();
}
}
}


FrontController.java

public class FrontController
{
private Dispatcher dispatcher;

public FrontController()
{
dispatcher = new Dispatcher();
}

private boolean isAuthenticUser()
{
//here you have to write Authentication logic
System.out.println("User is authenticated successfully.");
return true;
}

private void trackRequest( String request )
{
System.out.println("Page requested: " + request);
}

public void dispatchRequest( String request )
{
// log each request
trackRequest(request);
// authenticate the user
if( isAuthenticUser() )
{
dispatcher.dispatch(request);
}
}
}

FrontControllerPatternDemo.java

public class FrontControllerPatternDemo
{
public static void main( String[] args )
{
FrontController frontController = new FrontController();
frontController.dispatchRequest("USER");
System.out.println();
frontController.dispatchRequest("ACCOUNT");
System.out.println();
frontController.dispatchRequest("SALARY");
}
}

Output

Page requested: USER
User is authenticated successfully.
Displaying User Page

Page requested: ACCOUNT
User is authenticated successfully.
Displaying Account Page

Page requested: SALARY
User is authenticated successfully.
Displaying Salary Page


See also:

  • Front Controller Design Pattern - Introduction
  • Front Controller Design Pattern - Class and Sequence Diagram
  • Front Controller Design Pattern - Key Points
  • All Design Patterns Links



  • Saturday, 24 August 2013

    Session State Design pattern


    Click here to watch in Youtube : https://www.youtube.com/watch?v=js-OlYuXRi4

    Click the below Image to Enlarge
    Session State  Design pattern















    See also:

  • All Design Patterns Links
  • Base Design Pattern


    Click here to watch in Youtube : https://www.youtube.com/watch?v=73iG2MSAY30

    Click the below Image to Enlarge
    Base Design Pattern














    See also:

  • All Design Patterns Links
  • Offline Concurrency Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=9UBuUDL76fI

    Click the below Image to Enlarge
    Offline Concurrency Patterns














    See also:

  • All Design Patterns Links
  • Distribution Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=cDgB46gx9V4

    Click the below Image to Enlarge
    Distribution Patterns














    See also:

  • All Design Patterns Links
  • Object-Relational Metadata Mapping Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=T7Dqys234X8

    Click the below Image to Enlarge
    Object-Relational Metadata Mapping Patterns















    See also:

  • All Design Patterns Links
  • Object-Relational Structural Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=icwcqXz7t3o

    Click the below Image to Enlarge
    Object-Relational Structural  Patterns














    See also:

  • All Design Patterns Links
  • Object-Relational Behavioral Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=7XOkyPNg4IU

    Click the below Image to Enlarge
    Object-Relational Behavioral Patterns














    See also:

  • All Design Patterns Links
  • Data Source Architectural Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=nUS7GdFcss4

    Click the below Image to Enlarge
    Data Source Architectural  Patterns















    See also:

  • All Design Patterns Links
  • Domain Logic Patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=R4vJK2zvUHc

    Click the below Image to Enlarge
    Domain Logic Patterns














    See also:

  • All Design Patterns Links
  • Behavioral design patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=kiTDR0YoIqA

    Click the below Image to Enlarge
    Behavioral design patterns

















    See also:

  • All Design Patterns Links
  • Structural design patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=CJN3D4BfKCk

    Click the below Image to Enlarge
    Structural design patterns

















    See also:

  • All Design Patterns Links
  • Creational Design patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=bTQ3owJOMFM

    Click the below Image to Enlarge
    Creational Design patterns

    Design patterns - catalog


    Click here to watch in Youtube : https://www.youtube.com/watch?v=JjwazgrE2LY

    Click the below Image to Enlarge
    Design patterns - catalog

















    See also:

  • All Design Patterns Links
  • Design patterns


    Click here to watch in Youtube : https://www.youtube.com/watch?v=EYOKqb2Mf7k

    Click the below Image to Enlarge
    Design patterns





    See also:

  • All Design Patterns Links
  • Messaging Design Pattern(MDP) - Implementation of Webservice


    Click here to watch in Youtube : https://www.youtube.com/watch?v=UdpAI8VBKYs

    Click the below Image to Enlarge
    Messaging Design Pattern(MDP) - Implementation of Webservice














    See also:

  • All Design Patterns Links
  • Messaging Design Pattern(MDP)-Implementation of Adapter


    Click here to watch in Youtube : https://www.youtube.com/watch?v=JF4Ul_Mb6xs

    Click the below Image to Enlarge
    Messaging Design Pattern(MDP)-Implementation of Adapter














    See also:

  • All Design Patterns Links
  • Messaging Design Pattern(MDP) - Implementation of Proxy


    Click here to watch in Youtube : https://www.youtube.com/watch?v=PYM_wxy5Tfo

    Click the below Image to Enlarge
    Messaging Design Pattern(MDP) - Implementation of Proxy














    See also:

  • All Design Patterns Links