0% found this document useful (0 votes)
9 views

Design Patterns

Uploaded by

Waqas Khalid
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Design Patterns

Uploaded by

Waqas Khalid
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Software

Engineering

Khayyam Siddiq Mphil It


Aspire College Hafizabad
Design Patterns in Software
Engineering
Design Patterns
• Design patterns are reusable solutions to
commonly occurring design problems in
software engineering. They provide
proven approaches to solving specific
design challenges and help in creating
flexible, maintainable, and scalable
software systems.
Creational Patterns
• These patterns focus on object creation
mechanisms, providing flexibility and
decoupling the object instantiation
process. Examples include the Singleton,
Factory Method, Abstract Factory, Builder,
and Prototype patterns.
Creational Patterns
Continue...
• Singleton: Ensures a class has only
one instance and provides a
global point of access to it.
• Factory Method: Defines an
interface for creating objects, but
lets subclasses decide which class
to instantiate.
Continue
• Abstract Factory: Provides an interface for
creating families of related or dependent objects
without specifying their concrete classes.
• Builder: Separates the construction of a complex
object from its representation, allowing the
same construction process to create different
representations.
• Prototype: Creates objects by cloning an existing
one instead of creating new instances from
scratch.
Structural Patterns:
• Converts the interface of a class into
another interface that clients expect.
• An object by wrapping it with one or
more decorator classes.
• Composes objects into tree structures
to represent part-whole hierarchies.
• It allows clients to treat individual
objects and compositions uniformly.
Behavioral Patterns:
• Defines a one-to-many dependency
between objects, so that when one object
changes its state, all its dependents are
notified and updated automatically.
• Allows the algorithm to be selected at
runtime
• Allowing subclasses to override certain
steps of the algorithm without changing its
structure
::Thank you::

You might also like