design patterns (by joel funu at devcongress 2013)

Post on 15-Jan-2015

1.506 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A tech talk on Design Patterns delivered by Joel Funu at DevCongress 2013 on 24th August, 2013.

TRANSCRIPT

Intro to Design PatternsFunu Joel

Overview★ What design patterns are.

★ Why they are important.

★ Some OO basics and Design Principles

★ Classifications of Design Patterns

★ Examples

What are Design Patterns?

Definitions★ A pattern describes a problem which occurs over and

over again in our environment, and then describes the

core of the solution to that problem, in such a way that

you can use this solution a million times. (Alexander,

1977).

★ A design pattern is a general, reusable solution to a

common problem in software design.(gof, 1995).

Elements of a pattern design★ The pattern name

○ It is used to describe a design problem, its solutions and consequences in a word or two.

★ The problem○ It describes when to apply the pattern.

★ The solution○ It describes the elements that make up the design, their

relationships, responsibilities and collaborations

★ The consequences.○ the results an tradeoffs of applying the pattern

Why are they important?

Benefits of design patterns★ They provide proven solutions to software

development issues.

★ They make communications between developers more efficient.

★ They make it easier to change and maintain software.

Benefits of design patterns★ They prevent from wasting your time hacking

your way into a solution.

★ They shift your level of thinking to higher perspective.

★ They enable design efficient and scalable applications.

OO basics and design principles

objected oriented basics★ Abstraction

★ Encapsulation

★ Polymorphism

★ Inheritance

object oriented design principles★ Separate what varies from what stays the

same .

★ Favor composition over inheritance.

★ Always program to interfaces not implementations.

principles cont'd★ Strive for loosely coupled design between

objects.

★ Classes should be open to extension but closed for modification.(open-close principle)

Classifications of Design Patterns

Classifications★ Creational Design Patterns

★ Behavioural Design Patterns

★ Structural Design Patterns

Creational Patterns

“These are design patterns that deal

with object creation mechanisms.”

Types of creational patterns★ Factory method pattern

★ Abstract factory pattern

★ Builder pattern

★ Prototype pattern

★ Singleton pattern

Factory method pattern

“ ”

UML representation

Code representation

Behavioral Patterns

“are patterns that identify common communication patterns between objects and realize them to increase flexibility in these communication.”

Types of behavioral patterns★ Strategy ★ Observer ★ State ★ Command ★ Iterator ★ Mediator★ Memento ★ Template method★ Visitor

Strategy Pattern

“ ”

UML representation

Structural Patterns

“these are patterns that identify simple ways to realize relationships between

entities.”

Types of structural patterns★ Adapter

★ Bridge

★ Decorator

★ Composite

★ Facade

★ Flyweight

★ Proxy

Proxy Pattern

“allows you to provide an interface to other objects by creating a wrapper

class as the proxy ”

UML representation

top related