0% found this document useful (0 votes)
2 views1 page

Software Design Patterns

The document outlines key principles of object-oriented design known as SOLID, which include the Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion principles. It also describes common design patterns such as the Singleton, Factory Method, Adapter, and Observer, which provide reusable solutions to typical design problems. These principles and patterns are essential for creating maintainable and scalable software systems.

Uploaded by

zanderbrylle
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views1 page

Software Design Patterns

The document outlines key principles of object-oriented design known as SOLID, which include the Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion principles. It also describes common design patterns such as the Singleton, Factory Method, Adapter, and Observer, which provide reusable solutions to typical design problems. These principles and patterns are essential for creating maintainable and scalable software systems.

Uploaded by

zanderbrylle
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Software Engineering Design

Patterns
Architectural Principles and Object-Oriented Patterns | Software Architecture Documentation

1. Principles of Object-Oriented Design (SOLID)


Maintainable and scalable software systems rely on fundamental object-oriented design principles:
 Single Responsibility Principle (SRP) A class should have only one reason to change, focusing
entirely on a single logical responsibility.
 Open/Closed Principle (OCP) Software entities should be open for extension, but closed for direct
code modification.
 Liskov Substitution Principle (LSP) Subtypes must be completely substitutable for their base types
without altering system correctness.
 Interface Segregation Principle (ISP) Clients should not be forced to depend upon methods and
interfaces they do not consume.
 Dependency Inversion Principle (DIP) High-level modules should depend on abstract interfaces
rather than concrete implementations.

2. Common Design Patterns


Design patterns provide reusable architectural solutions to standard object-oriented design problems:
 Creational - Singleton Ensures a class has only a single instance globally while providing a unified
access point.
 Creational - Factory Method Defines an interface for creating objects while letting subclasses decide
which class to instantiate.
 Structural - Adapter Allows objects with incompatible interfaces to collaborate by wrapping their
execution calls.
 Behavioral - Observer Establishes a subscription mechanism to notify multiple dependent objects
automatically upon state changes.

You might also like