Skip to content

Latest commit

 

History

History
47 lines (28 loc) · 2.17 KB

README.md

File metadata and controls

47 lines (28 loc) · 2.17 KB

SOLID Principles in Flutter

Description

This repository contains a Flutter project that demonstrates the implementation of the SOLID principles in software design. Each SOLID principle (SRP, OCP, LSP, ISP, DIP) is explained in detail through separate information files located in the solid_info directory. Additionally, each principle is exemplified using various Flutter classes, each residing in its own directory inside the lib folder.

SOLID Principles

Single Responsibility Principle (SRP)

Definition: The Single Responsibility Principle suggests that a class should have only one reason to change, meaning it should be responsible for one thing or have a "single responsibility."

Information File: [SRP Info]

Open/Closed Principle (OCP)

Definition: The Open/Closed Principle states that a class should be open for extension but closed for modification.

Information File: [OCP Info]

Liskov Substitution Principle (LSP)

Definition: The Liskov Substitution Principle states that subtypes must be substitutable for their base types.

Information File: [LSP Info]

Interface Segregation Principle (ISP)

Definition: The Interface Segregation Principle suggests that a class should not be forced to implement interfaces or methods it does not use.

Information File: [ISP Info]

Dependency Inversion Principle (DIP)

Definition: The Dependency Inversion Principle states that high-level modules should not depend on low-level modules; both should depend on abstractions.

Information File: [DIP Info]

How to Run the Project

  1. Clone this repository to your local machine.
  2. Open the project in Flutter.
  3. Explore each principle's information file in the solid_info directory for detailed explanations.
  4. Browse the example classes in the lib directory to see practical implementations of each principle.

Contributions

Contributions to improve this project and enhance the understanding of SOLID principles in Flutter are highly welcome. If you find any issues or want to add more examples, feel free to submit a pull request.

License

This project is licensed under the MIT License. Refer to the LICENSE file for more details.