Skip to content

Repository files navigation

Software Architecture and Design Patterns Lab

Course Code: 21CSC309J
Course Name: SOFTWARE ARCHITECTURE AND DESIGN

Lab Experiments

Lab 1: Introduction to Design Patterns

  • Overview of design patterns catalogue
  • Study of Creational, Structural, and Behavioral patterns
  • Use case diagram for lab scenarios

Lab 2: Factory Pattern

Implementation of Factory Method pattern for object creation without exposing instantiation logic.

Lab 3: Abstract Factory Pattern

Implementation of Abstract Factory pattern for creating families of related objects.

Lab 4: Singleton Pattern

Implementation of Singleton pattern ensuring a class has only one instance.

Lab 5: Composite Pattern

Implementation of Composite pattern for treating individual objects and compositions uniformly.

Lab 6: Decorator Pattern

Implementation of Decorator pattern to add functionality to objects dynamically.

Lab 7: Proxy Pattern

Implementation of Proxy pattern to control access to objects.

Lab 8: Iterator Pattern

Implementation of Iterator pattern for sequential access to collection elements.

Lab 9: Mediator Pattern

Implementation of Mediator pattern to reduce coupling between objects.

Lab 10: Visitor Pattern

Implementation of Visitor pattern to add operations without modifying classes.

Technologies Used

  • Python
  • Object-Oriented Programming
  • Design Patterns

Repository Structure

Each lab is implemented as a standalone Python program demonstrating the respective design pattern.

Learning Outcomes

  • Understanding of different design pattern categories
  • Hands-on implementation of 10 essential design patterns
  • Ability to apply design patterns to solve real-world problems
  • Improved software design and architecture skills

LICENSE

MIT LICENSE