AMRITA VISHWA VIDYAPEETHAM
AMRITA SCHOOL OF ENGINEERING
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
15CSE343 DESIGN PATTERNS 3-0-0-3
COURSE INSTRUCTOR : Dr N LALITHAMANI
B. Tech . / Semester 7 ( ODD ) – Elective IV - July 2021 – Nov 2021
Total number of students : 136
Total no of hours: 42
Total no of Discussion hours : 16
CLASS SESSION SCHEDULE
MONDAY(SLOT 1): 8:50 AM TO 9:40 AM
TUESDAY(SLOT 2) : 9:50 AM TO 10:40 AM
THURSDAY(SLOT 1) : 8:50 AM TO 9:40 AM
DISCUSSION HOUR :
Apr 4, 2024 SATURDAY ( SLOT 3 ): 11:00 AM TO 11:50 AM 1
COURSE SYLLABI
15CSE343 DESIGN PATTERNS 3003
Unit 1
Introduction to Design Patterns: Significance – Software Design
and patterns – Model – View - Controller.
Unit 2
Creational Patterns-Singleton-Factory-Factory method- Abstract
Factory –Builder- Prototype. Behavioral Patterns- Chain of
responsibility-Command-Interpreter-Iterator-Mediator-Observer-
Strategy- Template-Memento
Unit 3
Structural Patterns –Adapter-Bridge-Composite-Decorator-
Flyweight-Proxy
Introduction to Design Patterns
• Write a new program feature
• Recognize design patterns to satisfy need
for good, simple and reusable solutions
• Reuse of OO code between projects and
between programmers
• To catalog common interactions between
objects that programmers often found
useful
3
What should the designer do ?
O-O designers follow patterns like
• Represent state with objects
• Decorate objects so you can easily add /
remove features
What does patterns help in ?
• Record experience in designing object-
oriented software
• Capture design experience in a form that
people can use effectively
• Help a designer get a design “right” faster
• It is not application domain-specific
Definitions of Design patterns
• Recurring solutions to design problems you
see over and over
• It has a set of rules describing how to
accomplish certain tasks in realm of software
development
• Focus on reuse of recurring design themes
• Identify and specify above the level of single
classes and instances
What are Patterns ?
• Improve the process
• Instructive information
• Proven solution to a recurring problem
• Solution is not obvious
• Describes a relationship
The Learning Process
• Acceptance
• Recognition
• Internationalization
Types of Patterns
• Generative patterns
• Non-generative patterns
• Analysis patterns
• Design patterns
• Communication patterns
Patterns Vs Antipatterns
• They are similar but fundamentally different
• Recognize when you have the opportunity to
apply a good solution to a problem
• Recognize the nature of a bad situation and
suggest solutions
Patterns BEST PRACTICES
Anti Patterns WORST PRACTICES
Patterns are discovered. The process of looking for these patterns is
called PATTERN MINING
Frame work Vs Patterns
• Presenting a generic solution to a problem
that can be applied to all levels in a
development
Executable software
Design patterns
Frameworks physical in nature
Patterns logical in nature
Design Patterns Vs Framework
• Design patterns – abstract & architectural
elements
• Framework – consequence of design
Rule of Three
“ Even if an object appears to have all the
requisite pattern components, it should not be
considered a pattern until it has been verified to
be a recurring phenomenon”
Recommended Practice : Atleast 3 occurrences
Capturing Patterns
• Focus on practicability ( proven solutions )
• Aggressive disregard of originality
( not professionals who solved the problem or
found the solution )
• Nonanonymous review ( how patterns might be
clarified or improved )
• Winter’s workshops ( open forum discussions )
• Careful editing ( pattern authors responsibility
to be in finished form )
Describing Design Patterns
• Pattern Name and Classification
• Intent
• Also known As
• Motivation
• Applicability
• Structure
• Participants
• Collaboration
• Consequences
• Known uses
• Related Patterns
How DP solve design problems ?
• Finding appropriate objects
• Determining object granularity
• Specifying object interfaces
• Specifying object implementations
• Program to an interface, not an
implementation
• Favor object composition over class
inheritance