Skip to content

This project is a simple application for better understanding of how to use SOLID principles in flutter projects.

License

Notifications You must be signed in to change notification settings

nimafarzin-pr/flutter-SOLID-learning-application

Repository files navigation

solid_base_application

Getting Started

Project!

This project is a simple application for better understanding of how to use SOLID principles in flutter projects.

SOLID is an acronym for the first five object-oriented design (OOD) principles by Robert C. Martin (also known as Uncle Bob) These principles establish practices that lend to developing software with considerations for maintaining and extending as the project grows. Adopting these practices can also contribute to avoiding code smells, refactoring code, and Agile or Adaptive software development. SOLID stands for:

  • S - Single-responsibility Principle
  • O - Open-closed Principle
  • L - Liskov Substitution Principle
  • I - Interface Segregation Principle
  • D - Dependency Inversion Principle

Single-responsibility Principle

Project! Single-responsibility Principle (SRP) : class should have one and only one reason to change, meaning that a class should have only one job.

Open-Closed Principle

Project! Open-closed Principle (OCP): Objects or entities should be open for extension but closed for modification.

Liskov Substitution Principle

Project! Liskov Substitution Principle (LSP): Objects of a superclass should be replaceable with objects of its subclasses without breaking the application. In other words, what we want is to have the objects of our subclasses behaving the same way as the objects of our superclass

Interface segregation principle (ISP)

Project! Project! Interface segregation principle (ISP): No code should be forced to depend on method it does not use. ISP splits interfaces that are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them. Such shrunken interfaces are also called role interfaces ISP is intended to keep a system decoupled and thus easier to refactor, change, and redeploy.

Dependency Inversion Principle

Project! Dependency inversion principle: Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.

About

This project is a simple application for better understanding of how to use SOLID principles in flutter projects.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published