designpattern

11
Design Patterns in Java A design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code.

Upload: srikrishna-k

Post on 09-Jan-2017

99 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Designpattern

Design Patterns in Java

A design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be

transformed directly into code.

Page 2: Designpattern

Types of Design Patterns

• As per the design pattern reference book Design Patterns - Elements of Reusable Object-Oriented Software , there are 23 design patterns which can be classified in three categories:

• Creational• Structural• Behavioral • .We'll also discuss another category of design

pattern: J2EE design patterns.

Page 3: Designpattern

Creational Patterns

• These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case.

Page 4: Designpattern

Structural Patterns

• These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.

Page 5: Designpattern

Behavioral Patterns

• These design patterns are specifically concerned with communication between objects.

Page 6: Designpattern

• Structural patterns generally deal with relationships between entities, making it easier for these entities to work together.

• Creational patterns provide instantiation mechanisms, making it easier to create objects in a way that suits the situation.

• Behavioral patterns are used in communications between entities and make it easier and more flexible for these entities to communicate

Page 7: Designpattern

• What is Gang of Four (GOF)?• In 1994, four authors Erich Gamma, Richard

Helm, Ralph Johnson and John Vlissides published a book titled Design Patterns - Elements of Reusable Object-Oriented Software which initiated the concept of Design Pattern in Software development.

Page 8: Designpattern

• According to these authors design patterns are primarily based on the following principles of object orientated design.

• Program to an interface not an implementation

• Favor object composition over inheritance

Page 9: Designpattern

Usage of Design Pattern

• Design Patterns have two main usages in software development.• Common platform for developers• Design patterns provide a standard terminology and are specific to

particular scenario. For example, a singleton design pattern signifies use of single object so all developers familiar with single design pattern will make use of single object and they can tell each other that program is following a singleton pattern.

• Best Practices• Design patterns have been evolved over a long period of time and

they provide best solutions to certain problems faced during software development. Learning these patterns helps unexperienced developers to learn software design in an easy and faster way.

Page 10: Designpattern

The factory method pattern

• is a creational design pattern which does exactly as it sounds: it's a class that acts as a factory of object instances.

• The main goal of this pattern is to encapsulate the creational procedure that may span different classes into one single function. By providing the correct context to the factory method, it will be able to return the correct object.

Page 11: Designpattern

The singleton Pattern

• The singleton design pattern is a creational design pattern which makes sure that you have one single instance of a particular class in the duration of your runtime, and provides a global point of access to the single instance.

• This makes it easier to set up a point of "coordination" for other objects that use the singleton instance as well, since the singleton's variables will always be the same for anything that calls it.