Design Patterns (by Joel Funu at DevCongress 2013)
Upcoming SlideShare
Loading in...5

Design Patterns (by Joel Funu at DevCongress 2013)



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

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



Total Views
Views on SlideShare
Embed Views



1 Embed 2 2


Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Design Patterns (by Joel Funu at DevCongress 2013) Design Patterns (by Joel Funu at DevCongress 2013) Presentation Transcript

  • Intro to Design Patterns Funu 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