0% found this document useful (0 votes)
82 views20 pages

Design Patterns: Devendra Dave Ravi Babu Vepa

This document provides an introduction to design patterns. It discusses the different types of design patterns including Gang of Four patterns, enterprise patterns, and model-view patterns. It focuses on explaining GoF design patterns, including the three main types: creational, structural, and behavioral patterns. Specific patterns like singleton, factory method, abstract factory, facade, strategy, and template method are described in detail.

Uploaded by

davedevendra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views20 pages

Design Patterns: Devendra Dave Ravi Babu Vepa

This document provides an introduction to design patterns. It discusses the different types of design patterns including Gang of Four patterns, enterprise patterns, and model-view patterns. It focuses on explaining GoF design patterns, including the three main types: creational, structural, and behavioral patterns. Specific patterns like singleton, factory method, abstract factory, facade, strategy, and template method are described in detail.

Uploaded by

davedevendra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Design Patterns

Devendra Dave
Ravi Babu Vepa
Agenda

● Introduction to Design Patterns
● Types of Design Patterns 
● GoF Software Design Patterns
● Types of GoF Design Patterns
● Frequently used Design Patterns 
● References and Further Reading

    2
Introduction to Design Patterns


Pattern describes a problem which occurs over and over again in our 
environment, and then describes the core of the solution to the 
problem, in such a way that you can use this solution million times 
over, without ever doing it the same way twice. 
● Desription of each pattern can consist of the following
➔ Name  ­ handle to describe a design problem
➔ Problem – when to apply pattern
➔ Solution – solution template describing elements and their 
relationships
➔ Consequences  ­ results and trade offs of applying pattern

    3
● Types of Design Patterns 

● Gang of Four Patterns
● Enterprise Patterns
● SOA and Messaging Patterns
● Model – View Patterns

    4
● GoF Software Design Patterns

● 23 classic software design patterns providing recurring 
solutions to common problems in software design
● Developed by Erich Gamma, Richard Helm, Ralph 
Johnson and John Vlissides, often referred to as the Gang 
of Four
● Design Patterns: Elements of Reusable Object­Oriented 
Software Book 

    5
Types of GoF Design Patterns
● Creational Design Patterns
– Singleton Pattern
– Factory Pattern
– Abstract Factory Pattern
– Builder Pattern
– Prototype Pattern
● Structural  Design  Patterns
– Adapter Pattern
– Composite Pattern
– Proxy Pattern
– Flyweight Pattern
– Facade Pattern
– Bridge Pattern
– Decorator Pattern

Behavioral Design Patterns
– Template Method Pattern
– Mediator Pattern
– Chain of Responsibility Pattern
– Observer Pattern
– Strategy Pattern
– State Pattern
– Visitor Pattern
– Iterator Pattern
– Memento Pattern

    6
Creational Design Patterns

● Abstracts the instantiation process
● Make system independent of how its objects are created, 
composed and represented
● Creational Patterns highly used in software design 
– Singleton Pattern
– Factory Method Pattern
– Abstract Factory Pattern

    7
Singleton Pattern
● Ensure a class only has one instance, and provide a global point of access 
to it.
● Client access the singleton instance soley though its instance 
operation/method
● Sample Usage : Logger, configuration classes, connection pool manager etc
class Singleton
{
private static Singleton instance;
private Singleton()
{
...
}

public static synchronized Singleton getInstance()


{
if (instance == null)
instance = new Singleton();

return instance;
}
...
public void doSomething()
{
...
}
}
    8
Factory Method Pattern

● Factory is a Java class that is used to encapsulate object 
creation code
● Factory class instantiates and returns a particular type of 
object based on data passed to the factory
● Objects returned from factory are subclasses of common 
parent class 
● e.g. BorderFactory
● java.sql.Connection
● java.sql.Statement

    9
Factory Method Pattern (..contd.)

package com.cakes;
package com.cakes;
public class AnimalFactory {
public class Cat extends Animal {
public Animal getAnimal(String type) {
@Override
if ("canine".equals(type)) {
public String makeSound() {
return new Dog();
return "Meow";
} else {
}
return new Cat();
}
}
}
}

package com.cakes;
public class Demo {
public static void main(String[] args) {
AnimalFactory animalFactory = new AnimalFactory();
Animal a1 = animalFactory.getAnimal("feline");
System.out.println("a1 sound: " + a1.makeSound());
Animal a2 = animalFactory.getAnimal("canine");
System.out.println("a2 sound: " + a2.makeSound());
}
}

    10
● Abstract Factory Pattern

● Abstract factory is a factory that returns factories
● An abstract factory is used to return factories that can be 
used to create sets of related objects
● e.g. Swing UI LookFeel UIManager, 
javax.swing.plaf.metal.MetalLookAndFeel, GTKLookAndFeel, 
WindowsLookAndFeel

    11
● Abstract Factory Pattern (Contd.)

    12
Structural Design Patterns

● Concerened with how classes and objects are composed 
to form a larger structures
● Used in establishing the relationship between different 
entities
● Structural Patterns highly used in software design 
– Facade Pattern
– Proxy Pattern
– Decorator Pattern

    13
Facade Pattern

● A facade classes is used to provide a single interface to 
set of classes
● Facade simplifies a clients interaction with a complex 
system by localizing the interactions into a single interface

    14
Proxy Pattern

● A proxy class is used to control access to another class
● A proxy is to control access rights to an object
● Usage: RMI Proxies in form of stub and skeleton

    15
Behavioral Patterns

● Identify common communication patterns between objects and 
realize these patterns
● Increase flexibility in carrying out this communication
● Concerened with algorithms and the assignment of 
responsibiities between objects
● Behavioral Patterns highly used in software design 
– Template Method Pattern
– Strategy Pattern
– Chain of Responsibility Pattern

    16
Template Method Pattern

● Define the sekeleton of an algorithm in form of 
method(template method), deferring some steps to 
subclasses 
● Lets subclasses redefine certain steps without changing 
the algorithm structure
● Usage: Meal example, Parser examples(db, csv etc)

    17
Strategy Patterns

● Defines a family of algorithms,encapsulates each 
algorithm, and makes the algorithms interchangeable 
within that family
● Algorithms can be selected on the fly
● Alternative to subclassing and allows different behaviors to 
be placed in concrete strategy classes 
● Usage: Multiple validation alogrithms to be used,  printer 
driver example

    18
References & Further Readings
● Books

● Links
● http://www.oodesign.com/
● http://en.wikipedia.org/wiki/Software_design_pattern
● http://www.corej2eepatterns.com/

    19
Thank You

    20

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy