SlideShare a Scribd company logo
1
Presented by:
- Nozha KANNOUF
- Safaâ ELOUAHABI
- Sanae BEKKAR
Supervised by:
Mr. ABDALAOUI
Introduction to DesignIntroduction to Design
PatternPattern
Oujda Med First University
National College of Applied Sciences
Department of Computer Engineering
Introduction
02/06/2007 2
PlanPlan
Why design patterns ?
What is a design patterns ?
The patterns elements
Types of design patterns
Describing design patterns
The catalog of design patterns
Examples of design patterns
Conclusion
30/04/2009 3
WhyWhy Design Patterns?Design Patterns?
The DP satisfy this need for good ,simple and reusable solutions.
DP catalog common interactions between objects that
programmers have often found useful.
02/06/2007 4
Difficulties of ObjectDifficulties of Object--Oriented DesignOriented Design
Oriented-Object Design
find pertinent objects,
factor them into classes at the right granularity,
define class interfaces and inheritance hierarchies,
and establish key relationships among them.
02/06/2007 5
Difficulties of ObjectDifficulties of Object--Oriented DesignOriented Design
A reusable and flexible design is difficult if not
impossible to get “right” the first time.
Experienced OO designers do make good designs.
Whereas , New designers are overwhelmed by the
options available and tend to fall back on non-OO
techniques they’ve used before.
What’s their difference?
02/06/2007 6
PatternsPatterns
When they find a good solution, they use it
again and again – pattern.
A designer who is familiar with such patterns
can apply them immediately to design
problems without having to rediscover them.
02/06/2007 7
What is a design pattern?What is a design pattern?
02/06/2007 8
Design patternsDesign patterns
"Each 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
over, without ever doing it the same way
twice"
[Christopher Alexander]
02/06/2007 9
Design PatternDesign Pattern
Design patterns are class combinations and
accompanying algorithms that fulfill common design
purposes.
Design patterns are descriptions of communicating
objects and classes that are customized to solve a general
design problem in a particular context.
02/06/2007 10
In software engineering, a design pattern is a general
reusable solution to a commonly occurring problem in
software design. A design pattern is not a finished design
that can be transformed directly into code. It is a
description or template for how to solve a problem that
can be used in many different situations. Object-oriented
design patterns typically show relationships and
interactions between classes or objects, without specifying
the final application classes or objects that are involved
The essential elements of a patternThe essential elements of a pattern
02/06/2007 12
Pattern elementsPattern elements
Name
A meaningful pattern identifier
Problem description
When to apply the pattern
Solution description
Elements that make up the pattern, their relationships,
responsibilities, and collaborations.
Consequences
The results and trade-offs of applying the pattern
02/06/2007 13
Types of design patternTypes of design pattern
02/06/2007 14
Types of Design PatternsTypes of Design Patterns
Creational patterns
Creating a collection of objects in flexible ways.
Structural patterns
Representing a collection of related objects.
Behavioral patterns
Capturing behavior among a collection of objects.
02/06/2007 15
Describing Design PatternsDescribing Design Patterns
02/06/2007 16
Describing Design PatternsDescribing Design Patterns
Intent
short description of the pattern & its purpose
Also Known As
Any aliases this pattern is known by
Motivation
motivating scenario demonstrating pattern’s use
Applicability
circumstances in which pattern applies
Structure
graphical representation of the pattern using modified UML notation
Participants
participating classes and/or objects & their responsibilities
02/06/2007 17
Describing Design PatternsDescribing Design Patterns
Collaborations
how participants cooperate to carry out their responsibilities
Consequences
the results of application, benefits, liabilities
Implementation
pitfalls, hints, techniques, plus language-dependent issues
Sample Code
sample implementations in C++, Java, C#, Smalltalk, C, etc.
Known Uses
examples drawn from existing systems
Related Patterns
discussion of other patterns that relate to this one
02/06/2007 18
The Catalog of Design Patterns
02/06/2007 19
The Catalog of Design Patterns
Two criteria
Purpose: what a pattern does
Creational: concern the process of object creation
Structural: the composition of classes or objects
Behavioral: characterize the ways in which classes or objects
interact and distribute responsibility
Scope: whether the pattern applies primarily to
classes or to objects
02/06/2007 20
The Catalog of Design Patterns
02/06/2007 21
Examples of design patternsExamples of design patterns
02/06/2007 22
23
Intent
create families of related objects without specifying subclass names
Applicability
when clients cannot anticipate groups of classes to instantiate
ABSTRACT FACTORY object creational
02/06/2007 24
Structure
Intent
"compose" objects into tree structures to represent part-whole
hierarchies.
Applicability
when clients should ignore the difference between
compositions of objects and individual objects
02/06/2007 25
COMPOSITE object structural
02/06/2007 26
Structure
Intent
encapsulate the request for a service
Applicability
to parameterize objects with an action to perform
to specify, file, & execute requests at different times.
02/06/2007 27
Cammand/1 (object behavioral)
28
Structure
But…
02/06/2007 29
02/06/2007 30
1.Do not lead to direct code reuse
2. Complex in nature
3. They are deceptively simple
4. They are validated by experience and discussion
5. They consume more memory because of generalized
format they are written, to store any kind of data
6. Design patterns may increase or decrease the
understandability of a design or implementation
References and related resource
[Knuth] Computer Programming as an Art.
http://fresh.homeunix.net/~luke/misc/knuth-turingaward.pdf
[Columbia] Code convention.
http://nsl.cs.columbia.edu/projects/projects.html
Design pattern catalog.
http://www.dofactory.com/Patterns/Patterns.aspx#list
Introduction to Software Engineering
http://sunset.usc.edu/classes/cs377_2004/
Ad

More Related Content

What's hot (20)

Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
Amit Kabra
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
Satheesh Sukumaran
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Anuja Arosha
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
Asma CHERIF
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
mkruthika
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologies
Amith Tiwari
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
soms_1
 
ASP.NET Basics
ASP.NET Basics ASP.NET Basics
ASP.NET Basics
baabtra.com - No. 1 supplier of quality freshers
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
wiradikusuma
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
Raghuveer Guthikonda
 
Ooad overview
Ooad overviewOoad overview
Ooad overview
Dr. C.V. Suresh Babu
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
Kartik Raghuvanshi
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
naveen kumar
 
Software design
Software designSoftware design
Software design
Syed Muhammad Hammad-ud-Din
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
Sudarshan Dhondaley
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
RahimLotfi
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
Amit Kabra
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
Asma CHERIF
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
Lilia Sfaxi
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
mkruthika
 
object oriented methodologies
object oriented methodologiesobject oriented methodologies
object oriented methodologies
Amith Tiwari
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
soms_1
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
Sudarshan Dhondaley
 
Gof design pattern
Gof design patternGof design pattern
Gof design pattern
naveen kumar
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
Sudarshan Dhondaley
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
RahimLotfi
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 

Similar to Introduction to Design Pattern (20)

Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
DrYogeshDeshmukh1
 
Unit iii design patterns 9
Unit iii design patterns 9Unit iii design patterns 9
Unit iii design patterns 9
kiruthikamurugesan2628
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012
rhrashel
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
stanbridge
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
Ankit Dubey
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design Patterns
Michael Heron
 
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
yashikanigam1
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
DP PPTS by BK.pptx
DP PPTS by BK.pptxDP PPTS by BK.pptx
DP PPTS by BK.pptx
chandrasenareddychan
 
.Net design pattern
.Net design pattern.Net design pattern
.Net design pattern
Mohamed Zakarya Abdelgawad
 
Design in construction
Design in constructionDesign in construction
Design in construction
Asha Sari
 
Design in construction
Design in constructionDesign in construction
Design in construction
Asha Sari
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)
Gagandeep Nanda
 
Articulo acm
Articulo acmArticulo acm
Articulo acm
Janes Durán
 
Design patterns
Design patternsDesign patterns
Design patterns
Kolade Ibrahim Arowolo
 
Design & Evaluation of the Goal-Oriented Design Knowledge Library
Design & Evaluation of the Goal-Oriented Design Knowledge LibraryDesign & Evaluation of the Goal-Oriented Design Knowledge Library
Design & Evaluation of the Goal-Oriented Design Knowledge Library
andrewhilts
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
guesta4d934
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Dr. C.V. Suresh Babu
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
Rishabh Soni
 
Design Pattern - Introduction
Design Pattern - IntroductionDesign Pattern - Introduction
Design Pattern - Introduction
Mudasir Qazi
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
DrYogeshDeshmukh1
 
Cse 6007 fall2012
Cse 6007 fall2012Cse 6007 fall2012
Cse 6007 fall2012
rhrashel
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
stanbridge
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
Ankit Dubey
 
PATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design PatternsPATTERNS01 - An Introduction to Design Patterns
PATTERNS01 - An Introduction to Design Patterns
Michael Heron
 
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
Cracking Low-Level Design Interviews with Tutort Academy: Your Gateway to Tec...
yashikanigam1
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
Design in construction
Design in constructionDesign in construction
Design in construction
Asha Sari
 
Design in construction
Design in constructionDesign in construction
Design in construction
Asha Sari
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)
Gagandeep Nanda
 
Design & Evaluation of the Goal-Oriented Design Knowledge Library
Design & Evaluation of the Goal-Oriented Design Knowledge LibraryDesign & Evaluation of the Goal-Oriented Design Knowledge Library
Design & Evaluation of the Goal-Oriented Design Knowledge Library
andrewhilts
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
guesta4d934
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Dr. C.V. Suresh Babu
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
Rishabh Soni
 
Design Pattern - Introduction
Design Pattern - IntroductionDesign Pattern - Introduction
Design Pattern - Introduction
Mudasir Qazi
 
Ad

More from Sanae BEKKAR (13)

[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
Sanae BEKKAR
 
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration CloudDécouvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Sanae BEKKAR
 
Introduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling NotationIntroduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling Notation
Sanae BEKKAR
 
Ce qu'il faut savoir sur la BPM - Business Process Management
Ce qu'il faut savoir sur la BPM - Business Process ManagementCe qu'il faut savoir sur la BPM - Business Process Management
Ce qu'il faut savoir sur la BPM - Business Process Management
Sanae BEKKAR
 
L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc. L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc.
Sanae BEKKAR
 
La comptabilité et la finance sous OpenERP 7.0
La comptabilité et la finance sous OpenERP 7.0La comptabilité et la finance sous OpenERP 7.0
La comptabilité et la finance sous OpenERP 7.0
Sanae BEKKAR
 
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Sanae BEKKAR
 
Gestion des ressources humaines- sous OpenERP 7.0
Gestion des ressources humaines- sous OpenERP 7.0Gestion des ressources humaines- sous OpenERP 7.0
Gestion des ressources humaines- sous OpenERP 7.0
Sanae BEKKAR
 
La solution open source OpenERP 7.0
La solution open source OpenERP 7.0La solution open source OpenERP 7.0
La solution open source OpenERP 7.0
Sanae BEKKAR
 
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Sanae BEKKAR
 
Installation configuration OpenERP 7 - Windows
Installation   configuration OpenERP 7 - WindowsInstallation   configuration OpenERP 7 - Windows
Installation configuration OpenERP 7 - Windows
Sanae BEKKAR
 
Gestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERPGestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERP
Sanae BEKKAR
 
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Sanae BEKKAR
 
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
[Oracle Webcast] Discover the Oracle Blockchain Platform through the eyes of ...
Sanae BEKKAR
 
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration CloudDécouvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Découvrons Oracle Cloud Platform for Integration - Oracle Integration Cloud
Sanae BEKKAR
 
Introduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling NotationIntroduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling Notation
Sanae BEKKAR
 
Ce qu'il faut savoir sur la BPM - Business Process Management
Ce qu'il faut savoir sur la BPM - Business Process ManagementCe qu'il faut savoir sur la BPM - Business Process Management
Ce qu'il faut savoir sur la BPM - Business Process Management
Sanae BEKKAR
 
L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc. L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc.
Sanae BEKKAR
 
La comptabilité et la finance sous OpenERP 7.0
La comptabilité et la finance sous OpenERP 7.0La comptabilité et la finance sous OpenERP 7.0
La comptabilité et la finance sous OpenERP 7.0
Sanae BEKKAR
 
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Module MRP (Manufacturing Resource Planning ) sous OpenERP 7.0
Sanae BEKKAR
 
Gestion des ressources humaines- sous OpenERP 7.0
Gestion des ressources humaines- sous OpenERP 7.0Gestion des ressources humaines- sous OpenERP 7.0
Gestion des ressources humaines- sous OpenERP 7.0
Sanae BEKKAR
 
La solution open source OpenERP 7.0
La solution open source OpenERP 7.0La solution open source OpenERP 7.0
La solution open source OpenERP 7.0
Sanae BEKKAR
 
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -Qu’est ce qu’un  projet ERP - Entreprise Resource Planning -
Qu’est ce qu’un projet ERP - Entreprise Resource Planning -
Sanae BEKKAR
 
Installation configuration OpenERP 7 - Windows
Installation   configuration OpenERP 7 - WindowsInstallation   configuration OpenERP 7 - Windows
Installation configuration OpenERP 7 - Windows
Sanae BEKKAR
 
Gestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERPGestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERP
Sanae BEKKAR
 
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Module CRM(Customer Relationship Management ) sous OpenERP7 (Partie .2.))
Sanae BEKKAR
 
Ad

Recently uploaded (20)

Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 4-30-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 4-30-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACYUNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
DR.PRISCILLA MARY J
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Niamh Lucey, Mary Dunne. Health Sciences Libraries Group (LAI). Lighting the ...
Library Association of Ireland
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetCBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - Worksheet
Sritoma Majumder
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
Odoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo SlidesOdoo Inventory Rules and Routes v17 - Odoo Slides
Odoo Inventory Rules and Routes v17 - Odoo Slides
Celine George
 
How to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 WebsiteHow to Subscribe Newsletter From Odoo 18 Website
How to Subscribe Newsletter From Odoo 18 Website
Celine George
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Metamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative JourneyMetamorphosis: Life's Transformative Journey
Metamorphosis: Life's Transformative Journey
Arshad Shaikh
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdfExploring-Substances-Acidic-Basic-and-Neutral.pdf
Exploring-Substances-Acidic-Basic-and-Neutral.pdf
Sandeep Swamy
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACYUNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
UNIT 3 NATIONAL HEALTH PROGRAMMEE. SOCIAL AND PREVENTIVE PHARMACY
DR.PRISCILLA MARY J
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
How to track Cost and Revenue using Analytic Accounts in odoo Accounting, App...
Celine George
 

Introduction to Design Pattern

  • 1. 1 Presented by: - Nozha KANNOUF - Safaâ ELOUAHABI - Sanae BEKKAR Supervised by: Mr. ABDALAOUI Introduction to DesignIntroduction to Design PatternPattern Oujda Med First University National College of Applied Sciences Department of Computer Engineering
  • 3. PlanPlan Why design patterns ? What is a design patterns ? The patterns elements Types of design patterns Describing design patterns The catalog of design patterns Examples of design patterns Conclusion 30/04/2009 3
  • 4. WhyWhy Design Patterns?Design Patterns? The DP satisfy this need for good ,simple and reusable solutions. DP catalog common interactions between objects that programmers have often found useful. 02/06/2007 4
  • 5. Difficulties of ObjectDifficulties of Object--Oriented DesignOriented Design Oriented-Object Design find pertinent objects, factor them into classes at the right granularity, define class interfaces and inheritance hierarchies, and establish key relationships among them. 02/06/2007 5
  • 6. Difficulties of ObjectDifficulties of Object--Oriented DesignOriented Design A reusable and flexible design is difficult if not impossible to get “right” the first time. Experienced OO designers do make good designs. Whereas , New designers are overwhelmed by the options available and tend to fall back on non-OO techniques they’ve used before. What’s their difference? 02/06/2007 6
  • 7. PatternsPatterns When they find a good solution, they use it again and again – pattern. A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them. 02/06/2007 7
  • 8. What is a design pattern?What is a design pattern? 02/06/2007 8
  • 9. Design patternsDesign patterns "Each 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 over, without ever doing it the same way twice" [Christopher Alexander] 02/06/2007 9
  • 10. Design PatternDesign Pattern Design patterns are class combinations and accompanying algorithms that fulfill common design purposes. Design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context. 02/06/2007 10
  • 11. In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved
  • 12. The essential elements of a patternThe essential elements of a pattern 02/06/2007 12
  • 13. Pattern elementsPattern elements Name A meaningful pattern identifier Problem description When to apply the pattern Solution description Elements that make up the pattern, their relationships, responsibilities, and collaborations. Consequences The results and trade-offs of applying the pattern 02/06/2007 13
  • 14. Types of design patternTypes of design pattern 02/06/2007 14
  • 15. Types of Design PatternsTypes of Design Patterns Creational patterns Creating a collection of objects in flexible ways. Structural patterns Representing a collection of related objects. Behavioral patterns Capturing behavior among a collection of objects. 02/06/2007 15
  • 16. Describing Design PatternsDescribing Design Patterns 02/06/2007 16
  • 17. Describing Design PatternsDescribing Design Patterns Intent short description of the pattern & its purpose Also Known As Any aliases this pattern is known by Motivation motivating scenario demonstrating pattern’s use Applicability circumstances in which pattern applies Structure graphical representation of the pattern using modified UML notation Participants participating classes and/or objects & their responsibilities 02/06/2007 17
  • 18. Describing Design PatternsDescribing Design Patterns Collaborations how participants cooperate to carry out their responsibilities Consequences the results of application, benefits, liabilities Implementation pitfalls, hints, techniques, plus language-dependent issues Sample Code sample implementations in C++, Java, C#, Smalltalk, C, etc. Known Uses examples drawn from existing systems Related Patterns discussion of other patterns that relate to this one 02/06/2007 18
  • 19. The Catalog of Design Patterns 02/06/2007 19
  • 20. The Catalog of Design Patterns Two criteria Purpose: what a pattern does Creational: concern the process of object creation Structural: the composition of classes or objects Behavioral: characterize the ways in which classes or objects interact and distribute responsibility Scope: whether the pattern applies primarily to classes or to objects 02/06/2007 20
  • 21. The Catalog of Design Patterns 02/06/2007 21
  • 22. Examples of design patternsExamples of design patterns 02/06/2007 22
  • 23. 23 Intent create families of related objects without specifying subclass names Applicability when clients cannot anticipate groups of classes to instantiate ABSTRACT FACTORY object creational
  • 25. Intent "compose" objects into tree structures to represent part-whole hierarchies. Applicability when clients should ignore the difference between compositions of objects and individual objects 02/06/2007 25 COMPOSITE object structural
  • 27. Intent encapsulate the request for a service Applicability to parameterize objects with an action to perform to specify, file, & execute requests at different times. 02/06/2007 27 Cammand/1 (object behavioral)
  • 30. 02/06/2007 30 1.Do not lead to direct code reuse 2. Complex in nature 3. They are deceptively simple 4. They are validated by experience and discussion 5. They consume more memory because of generalized format they are written, to store any kind of data 6. Design patterns may increase or decrease the understandability of a design or implementation
  • 31. References and related resource [Knuth] Computer Programming as an Art. http://fresh.homeunix.net/~luke/misc/knuth-turingaward.pdf [Columbia] Code convention. http://nsl.cs.columbia.edu/projects/projects.html Design pattern catalog. http://www.dofactory.com/Patterns/Patterns.aspx#list Introduction to Software Engineering http://sunset.usc.edu/classes/cs377_2004/