SlideShare a Scribd company logo
1 of 15
“SOFTWARE DESIGN AND
ARCHITECTURE “
SOFTWARE DESIGN
PATTERNS
SOFTWARE DESIGN PATTERN
In software engineering, a software design pattern is a general, reusable solution to a
commonly occurring problem within a given context in software design. It is not a finished
design that can be transformed directly into source or machine code. Rather, it is a
description or template for how to solve a problem that can be used in many different
situations. Design patterns are formalized best practices that the programmer can use to
solve common problems when designing an application or system.
GOF
This book was first published in 1994 and it’s one of the most popular books to learn design
patterns. The book was authored by erich gamma, richard helm, ralph johnson, and john
vlissides. It got nicknamed as gangs of Four design patterns because of the four authors.
Furthermore, it got a shorter name “gof design patterns”.
GOF DESIGN PATTERN
TYPES
CREATIONAL
The design patterns that deal with the creation of an object
STRUCTURAL
The design patterns in this category deal with the class structure such as
inheritance and composition
BEHAVIORAL
This type of design pattern provides solutions for better interaction between objects, how to
provide loose coupling, and flexibility to extend easily in the future.
CREATIONAL DESIGN PATTERNS
CREATIONAL DESIGN PATTERNS
Singleton The singleton pattern restricts the initialization of a class to ensure that only one instance of the
class can be created.
Factory The factory pattern takes out the responsibility of instantiating a object from the class to a Factory
class.
Abstract
Factory
Allows us to create a Factory for factory classes.
Builder Creating an object step by step and a method to finally get the object instance.
Prototype Creating a new object instance from another similar instance and then modify according to our
requirements
Structural Design Patterns
Pattern
Name Description
Adapter Provides an interface between two unrelated entities so that they can work together.
Composite
Used when we have to implement a part-whole hierarchy. For example, a diagram made of other
pieces such as circle, square, triangle, etc.
Proxy Provide a surrogate or placeholder for another object to control access to it.
Flyweight Caching and reusing object instances, used with immutable objects. For example, string pool.
Facade Creating a wrapper interfaces on top of existing interfaces to help client applications.
Bridge
The bridge design pattern is used to decouple the interfaces from implementation and hiding the
implementation details from the client program.
Decorator The decorator design pattern is used to modify the functionality of an object at runtime.
Behavioral Design Patterns
• There are 11 behavioral design patterns defined in the GoF design patterns
Template
Method
used to create a template method stub and defer some of the steps of implementation to the
subclasses.
Mediator used to provide a centralized communication medium between different objects in a system.
Chain of
Responsi
bility
used to achieve loose coupling in software design where a request from the client is passed to a chain of
objects to process them.
Observer
useful when you are interested in the state of an object and want to get notified whenever there is any
change.
Strategy
Strategy pattern is used when we have multiple algorithm for a specific task and client decides the actual
implementation to be used at runtime.
Command
Command Pattern is used to implement lose coupling in a request-response model.
State
State design pattern is used when an Object change it’s behavior based on it’s internal state.
Visitor
Visitor pattern is used when we have to perform an operation on a group of similar kind of Objects.
Interpreter
defines a grammatical representation for a language and provides an interpreter to deal with this grammar.
Iterator
used to provide a standard way to traverse through a group of Objects.
Memento
The memento design pattern is used when we want to save the state of an object so that we can restore later on.

More Related Content

Similar to Software design and Architecture.pptx

Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
Jason Townsend, MBA
 
UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)
Miriam Ruiz
 

Similar to Software design and Architecture.pptx (20)

OOP design patterns
OOP design patternsOOP design patterns
OOP design patterns
 
dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...
dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...
dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
 
Go f designpatterns 130116024923-phpapp02
Go f designpatterns 130116024923-phpapp02Go f designpatterns 130116024923-phpapp02
Go f designpatterns 130116024923-phpapp02
 
Design Pattern with Actionscript
Design Pattern with ActionscriptDesign Pattern with Actionscript
Design Pattern with Actionscript
 
Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The World
 
Design pattern
Design patternDesign pattern
Design pattern
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Prophecy Of Design Patterns
Prophecy Of Design PatternsProphecy Of Design Patterns
Prophecy Of Design Patterns
 
DesignPattern-Overview.pptx
DesignPattern-Overview.pptxDesignPattern-Overview.pptx
DesignPattern-Overview.pptx
 
UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)UML Design Class Diagrams (2014)
UML Design Class Diagrams (2014)
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software Engineering
 
Oops design pattern_amitgupta
Oops design pattern_amitguptaOops design pattern_amitgupta
Oops design pattern_amitgupta
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
 
Design Pattern in Software Engineering
Design Pattern in Software Engineering Design Pattern in Software Engineering
Design Pattern in Software Engineering
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
 
Sda 9
Sda   9Sda   9
Sda 9
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
Design patterns
Design patternsDesign patterns
Design patterns
 

Recently uploaded

Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
gajnagarg
 
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
HyderabadDolls
 
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
awasv46j
 
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
nirzagarg
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
nirzagarg
 
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
ehyxf
 
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in RiyadhIn Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
ahmedjiabur940
 
How to Build a Simple Shopify Website
How to Build a Simple Shopify WebsiteHow to Build a Simple Shopify Website
How to Build a Simple Shopify Website
mark11275
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
HyderabadDolls
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
Isadora Agency
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Nitya salvi
 

Recently uploaded (20)

Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Mysore [ 7014168258 ] Call Me For Genuine Models We...
 
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
Eden Gardens ^ best call girls in Kolkata ₹7.5k Pick Up & Drop With Cash Paym...
 
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
一比一原版(WLU毕业证)罗瑞尔大学毕业证成绩单留信学历认证原版一模一样
 
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
NO1 Top Pakistani Amil Baba Real Amil baba In Pakistan Najoomi Baba in Pakist...
 
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Sonipat [ 7014168258 ] Call Me For Genuine Models W...
 
Branding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdfBranding in the Psychedelic Landscape Report.pdf
Branding in the Psychedelic Landscape Report.pdf
 
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
Top profile Call Girls In Mau [ 7014168258 ] Call Me For Genuine Models We ar...
 
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
怎样办理莫纳什大学毕业证(Monash毕业证书)成绩单留信认证
 
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
Ashiyana Colony - Virgin Call Girls Lucknow - Phone 9548273370 Escorts Servic...
 
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in RiyadhIn Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
In Saudi Arabia Jeddah (+918761049707)) Buy Abortion Pills For Sale in Riyadh
 
How to Build a Simple Shopify Website
How to Build a Simple Shopify WebsiteHow to Build a Simple Shopify Website
How to Build a Simple Shopify Website
 
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
Aminabad * High Profile Escorts Service in Lucknow Phone No 9548273370 Elite ...
 
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
Madhyamgram \ (Genuine) Escort Service Kolkata | Service-oriented sexy call g...
 
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
❤️ Call Girls Service Amritsar Call Girls (Adult Only) 💯Call Us 🔝 6378878445 ...
 
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEKLANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
LANDSCAPE ARCHITECTURE PORTFOLIO - MAREK MITACEK
 
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort ServiceOnly Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
Only Cash On Delivery Call Girls Service In Mysore Enjoy 24/7 Escort Service
 
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call GirlsDahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
Dahisar Comfortable Call Girls ,09167354423,Mira Road Model Call Girls
 
Design-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora AgencyDesign-System - FinTech - Isadora Agency
Design-System - FinTech - Isadora Agency
 
Nishatganj ? Book Call Girls in Lucknow | Book 9548273370 Extreme Naughty Cal...
Nishatganj ? Book Call Girls in Lucknow | Book 9548273370 Extreme Naughty Cal...Nishatganj ? Book Call Girls in Lucknow | Book 9548273370 Extreme Naughty Cal...
Nishatganj ? Book Call Girls in Lucknow | Book 9548273370 Extreme Naughty Cal...
 
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Ratnagiri Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 

Software design and Architecture.pptx

  • 1. “SOFTWARE DESIGN AND ARCHITECTURE “ SOFTWARE DESIGN PATTERNS
  • 2. SOFTWARE DESIGN PATTERN In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
  • 3. GOF This book was first published in 1994 and it’s one of the most popular books to learn design patterns. The book was authored by erich gamma, richard helm, ralph johnson, and john vlissides. It got nicknamed as gangs of Four design patterns because of the four authors. Furthermore, it got a shorter name “gof design patterns”.
  • 4.
  • 6. CREATIONAL The design patterns that deal with the creation of an object
  • 7. STRUCTURAL The design patterns in this category deal with the class structure such as inheritance and composition
  • 8. BEHAVIORAL This type of design pattern provides solutions for better interaction between objects, how to provide loose coupling, and flexibility to extend easily in the future.
  • 10. CREATIONAL DESIGN PATTERNS Singleton The singleton pattern restricts the initialization of a class to ensure that only one instance of the class can be created. Factory The factory pattern takes out the responsibility of instantiating a object from the class to a Factory class. Abstract Factory Allows us to create a Factory for factory classes. Builder Creating an object step by step and a method to finally get the object instance. Prototype Creating a new object instance from another similar instance and then modify according to our requirements
  • 12. Pattern Name Description Adapter Provides an interface between two unrelated entities so that they can work together. Composite Used when we have to implement a part-whole hierarchy. For example, a diagram made of other pieces such as circle, square, triangle, etc. Proxy Provide a surrogate or placeholder for another object to control access to it. Flyweight Caching and reusing object instances, used with immutable objects. For example, string pool. Facade Creating a wrapper interfaces on top of existing interfaces to help client applications. Bridge The bridge design pattern is used to decouple the interfaces from implementation and hiding the implementation details from the client program. Decorator The decorator design pattern is used to modify the functionality of an object at runtime.
  • 13. Behavioral Design Patterns • There are 11 behavioral design patterns defined in the GoF design patterns
  • 14. Template Method used to create a template method stub and defer some of the steps of implementation to the subclasses. Mediator used to provide a centralized communication medium between different objects in a system. Chain of Responsi bility used to achieve loose coupling in software design where a request from the client is passed to a chain of objects to process them. Observer useful when you are interested in the state of an object and want to get notified whenever there is any change. Strategy Strategy pattern is used when we have multiple algorithm for a specific task and client decides the actual implementation to be used at runtime.
  • 15. Command Command Pattern is used to implement lose coupling in a request-response model. State State design pattern is used when an Object change it’s behavior based on it’s internal state. Visitor Visitor pattern is used when we have to perform an operation on a group of similar kind of Objects. Interpreter defines a grammatical representation for a language and provides an interpreter to deal with this grammar. Iterator used to provide a standard way to traverse through a group of Objects. Memento The memento design pattern is used when we want to save the state of an object so that we can restore later on.