SlideShare a Scribd company logo
Design pattern
Overview, GOF
Overview
• Design patterns are reusable solutions to common problems that arise during
software design and development. They provide a way to structure your code
in a flexible and maintainable manner, often resulting in more efficient and
scalable software.
Introduction to GOF
• What are Gang of Four (GOF) Design Patterns?
• The Gang of Four Design Patterns is a set of solutions to common problems
we encounter in software design and development. They were first introduced
in the book Design Patterns: Elements of Reusable Object-Oriented
Software, published in 1994. The book was written by Erich Gamma,
Richard Helm, Ralph Johnson, and John Vlissides, who are collectively
known as Gang of Four.
Introduction to GOF
• Why they’re called Gang of Four?
The Gang of Four are four smart people who wrote a book about clever ways to solve
common problems in computer programming, and they’re called the Gang of
Four because there were four of them who wrote the book together. Their book has
been a big help to many programmers around the world.
These patterns categorize into three main groups:
• Creational Patterns
• Structural Patterns
• Behavioral Patterns
Design pattern of software words computer .pptx
Types
1. Creational Patterns:
• Singleton Pattern: Ensures that a class has only one instance and provides a
global point of access to it.
• Factory Method Pattern: Defines an interface for creating objects, but
allows subclasses to alter the type of objects that will be created.
• Abstract Factory Pattern: Provides an interface for creating families of
related or dependent objects without specifying their concrete classes.
• Builder Pattern: Separates the construction of a complex object from its
representation, allowing the same construction process to create different
representations.
Types
2. Structural Patterns:
• Adapter Pattern: Allows incompatible interfaces to work together by
wrapping an interface around an existing class.
• Decorator Pattern: Adds new functionality to an object dynamically
without altering its structure.
• Facade Pattern: Provides a unified interface to a set of interfaces in a
subsystem, simplifying the usage of complex systems.
• Composite Pattern: Composes objects into tree structures to represent part-
whole hierarchies.
Types
3. Behavioral Patterns:
• Observer Pattern: Defines a one-to-many dependency between objects so that
when one object changes state, all its dependents are notified and updated
automatically.
• Strategy Pattern: Defines a family of algorithms, encapsulates each one, and
makes them interchangeable. Strategy lets the algorithm vary independently from
clients that use it.
• Chain of Responsibility Pattern: Passes requests along a chain of handlers.
Upon receiving a request, each handler decides either to process the request or to
pass it to the next handler in the chain.
Types
• Command Pattern: Encapsulates a request as an object, thereby allowing
for parameterization of clients with queues, requests, and operations.
• Iterator Pattern: Provides a way to access the elements of an aggregate
object sequentially without exposing its underlying representation.
4. Architectural Patterns:
• Model-View-Controller (MVC): Separates an application into three main
components: Model (data and business logic), View (user interface), and
Controller (handles user input).
Types
• Model-View-ViewModel (MVVM): Similar to MVC but specifically
designed for modern UI development, where the ViewModel exposes data
and commands from the Model to the View.
• Layered Architecture: Divides an application into layers (e.g., presentation,
business logic, data access) where each layer has a specific responsibility
and interacts with adjacent layers.
• These patterns can greatly improve the structure, flexibility, and scalability
of your software, but it's important to use them judiciously, as overusing
patterns can lead to unnecessary complexity.

More Related Content

Similar to Design pattern of software words computer .pptx (20)

PPT
Chapter 4_Introduction to Patterns.ppt
RushikeshChikane2
 
PPTX
JS Design patterns in Web technologies including oop techniques.pptx
husnainali397602
 
PDF
Cse 6007 fall2012
rhrashel
 
PPTX
Design pattern and their application
Hiệp Tiến
 
PPT
Software Design Patterns
Satheesh Sukumaran
 
PPT
Software Design Patterns
Satheesh Sukumaran
 
PPTX
Design Pattern - Introduction
Mudasir Qazi
 
PDF
2 uml
Ashenafi Workie
 
PPT
oomd-unit-i-cgpa.ppt
Pavan992098
 
PPTX
Creational Design Patterns.pptx
Sachin Patidar
 
PPTX
System design process.pptx
NajibMuhammad16
 
PPTX
Design patterns Structural
UMAR ALI
 
PPTX
Designpattern
Srikrishna k
 
PPTX
OOPSDesign PPT ( introduction to opps and design (
bhfcvh531
 
PPTX
UNIT IV DESIGN PATTERNS.pptx
anguraju1
 
PPTX
Architectural Design & Patterns
Inocentshuja Ahmad
 
PPTX
Oops design pattern_amitgupta
Amit Gupta, MCSD TOGAF
 
PDF
dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...
Anil Sharma
 
PPTX
Let us understand design pattern
Mindfire Solutions
 
Chapter 4_Introduction to Patterns.ppt
RushikeshChikane2
 
JS Design patterns in Web technologies including oop techniques.pptx
husnainali397602
 
Cse 6007 fall2012
rhrashel
 
Design pattern and their application
Hiệp Tiến
 
Software Design Patterns
Satheesh Sukumaran
 
Software Design Patterns
Satheesh Sukumaran
 
Design Pattern - Introduction
Mudasir Qazi
 
oomd-unit-i-cgpa.ppt
Pavan992098
 
Creational Design Patterns.pptx
Sachin Patidar
 
System design process.pptx
NajibMuhammad16
 
Design patterns Structural
UMAR ALI
 
Designpattern
Srikrishna k
 
OOPSDesign PPT ( introduction to opps and design (
bhfcvh531
 
UNIT IV DESIGN PATTERNS.pptx
anguraju1
 
Architectural Design & Patterns
Inocentshuja Ahmad
 
Oops design pattern_amitgupta
Amit Gupta, MCSD TOGAF
 
dotnet stuff.com tutorials-design-patterns_exploring-net-design-patterns-in-s...
Anil Sharma
 
Let us understand design pattern
Mindfire Solutions
 

Recently uploaded (20)

PPTX
Morph Slide Presentation transition.pptx
ArifaAkter10
 
PPTX
佛罗伦萨大学文凭办理|办理UNIFI毕业证学费单购买文凭在线制作
1cz3lou8
 
PPTX
700315768-Linguistic-Connnnnnnnnntext.pptx
rossanthonytan1
 
PPTX
Modern_Dhaka_Apartment_Interior_Design.pptx
hasansarkeraidt
 
PDF
Shayna Andrieze Yjasmin Goles - Your VA!
shaynagoles31
 
PDF
Top 10 UI/UX Design Agencies in Dubai Shaping Digital Experiences
Tenet UI UX
 
PDF
SS27 Environments & Design Trend Book Peclers Paris
Peclers Paris
 
PDF
Hossain Kamyab on Mixing and Matching Furniture.pdf
Hossain Kamyab
 
PDF
TAIPAN99 Situs Pkv Games Terbaik Bermain Kapan Pun Dimana Dengan Mudah #1
TAIPAN 99
 
PPTX
Time_Management_Presenuuuuuuutation.pptx
Rajni Goyal
 
PPTX
Aldol_Condensation_Presentation (1).pptx
mahatosandip1888
 
DOCX
Personalized Jewellery Guide: Engraved Rings, Initial Necklaces & Birthstones...
Dishis jewels
 
PDF
Interior design technology LECTURE 28.pdf
SasidharReddyPlannin
 
PPTX
confluence of tradition in modernity- design approaches and design thinking
madhuvidya7
 
PPTX
3. Introduction to Materials and springs.pptx
YESIMSMART
 
PPTX
Digital Printing presentation-update-26.08.24.pptx
MDFoysalAhmed13
 
PPTX
Model PPT-1.pptx for research protocol or
drkalaivani
 
PPTX
Design & Thinking for Engineering graduates
NEELAMRAWAT48
 
PPTX
VERTICAL TRANSPORTATION SYSTEMS.pptxhvcvcvvdh
jp0718076
 
PPT
UNIT- 2 CARBON FOOT PRINT.ppt yvvuvvvvvvyvy
sriram270905
 
Morph Slide Presentation transition.pptx
ArifaAkter10
 
佛罗伦萨大学文凭办理|办理UNIFI毕业证学费单购买文凭在线制作
1cz3lou8
 
700315768-Linguistic-Connnnnnnnnntext.pptx
rossanthonytan1
 
Modern_Dhaka_Apartment_Interior_Design.pptx
hasansarkeraidt
 
Shayna Andrieze Yjasmin Goles - Your VA!
shaynagoles31
 
Top 10 UI/UX Design Agencies in Dubai Shaping Digital Experiences
Tenet UI UX
 
SS27 Environments & Design Trend Book Peclers Paris
Peclers Paris
 
Hossain Kamyab on Mixing and Matching Furniture.pdf
Hossain Kamyab
 
TAIPAN99 Situs Pkv Games Terbaik Bermain Kapan Pun Dimana Dengan Mudah #1
TAIPAN 99
 
Time_Management_Presenuuuuuuutation.pptx
Rajni Goyal
 
Aldol_Condensation_Presentation (1).pptx
mahatosandip1888
 
Personalized Jewellery Guide: Engraved Rings, Initial Necklaces & Birthstones...
Dishis jewels
 
Interior design technology LECTURE 28.pdf
SasidharReddyPlannin
 
confluence of tradition in modernity- design approaches and design thinking
madhuvidya7
 
3. Introduction to Materials and springs.pptx
YESIMSMART
 
Digital Printing presentation-update-26.08.24.pptx
MDFoysalAhmed13
 
Model PPT-1.pptx for research protocol or
drkalaivani
 
Design & Thinking for Engineering graduates
NEELAMRAWAT48
 
VERTICAL TRANSPORTATION SYSTEMS.pptxhvcvcvvdh
jp0718076
 
UNIT- 2 CARBON FOOT PRINT.ppt yvvuvvvvvvyvy
sriram270905
 
Ad

Design pattern of software words computer .pptx

  • 2. Overview • Design patterns are reusable solutions to common problems that arise during software design and development. They provide a way to structure your code in a flexible and maintainable manner, often resulting in more efficient and scalable software.
  • 3. Introduction to GOF • What are Gang of Four (GOF) Design Patterns? • The Gang of Four Design Patterns is a set of solutions to common problems we encounter in software design and development. They were first introduced in the book Design Patterns: Elements of Reusable Object-Oriented Software, published in 1994. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, who are collectively known as Gang of Four.
  • 4. Introduction to GOF • Why they’re called Gang of Four? The Gang of Four are four smart people who wrote a book about clever ways to solve common problems in computer programming, and they’re called the Gang of Four because there were four of them who wrote the book together. Their book has been a big help to many programmers around the world. These patterns categorize into three main groups: • Creational Patterns • Structural Patterns • Behavioral Patterns
  • 6. Types 1. Creational Patterns: • Singleton Pattern: Ensures that a class has only one instance and provides a global point of access to it. • Factory Method Pattern: Defines an interface for creating objects, but allows subclasses to alter the type of objects that will be created. • Abstract Factory Pattern: Provides an interface for creating families of related or dependent objects without specifying their concrete classes. • Builder Pattern: Separates the construction of a complex object from its representation, allowing the same construction process to create different representations.
  • 7. Types 2. Structural Patterns: • Adapter Pattern: Allows incompatible interfaces to work together by wrapping an interface around an existing class. • Decorator Pattern: Adds new functionality to an object dynamically without altering its structure. • Facade Pattern: Provides a unified interface to a set of interfaces in a subsystem, simplifying the usage of complex systems. • Composite Pattern: Composes objects into tree structures to represent part- whole hierarchies.
  • 8. Types 3. Behavioral Patterns: • Observer Pattern: Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. • Strategy Pattern: Defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. • Chain of Responsibility Pattern: Passes requests along a chain of handlers. Upon receiving a request, each handler decides either to process the request or to pass it to the next handler in the chain.
  • 9. Types • Command Pattern: Encapsulates a request as an object, thereby allowing for parameterization of clients with queues, requests, and operations. • Iterator Pattern: Provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation. 4. Architectural Patterns: • Model-View-Controller (MVC): Separates an application into three main components: Model (data and business logic), View (user interface), and Controller (handles user input).
  • 10. Types • Model-View-ViewModel (MVVM): Similar to MVC but specifically designed for modern UI development, where the ViewModel exposes data and commands from the Model to the View. • Layered Architecture: Divides an application into layers (e.g., presentation, business logic, data access) where each layer has a specific responsibility and interacts with adjacent layers. • These patterns can greatly improve the structure, flexibility, and scalability of your software, but it's important to use them judiciously, as overusing patterns can lead to unnecessary complexity.