├── .gitignore ├── 1-Single_Responsibility ├── 1-custoumer_example │ ├── a-customer_violation.dart │ └── b-customer_solution.dart ├── 2-book_example │ ├── a-book_model.dart │ ├── b-invoice_violation.dart │ └── c-invoice_solution.dart ├── 3-employee_example │ ├── a-employee_violation.dart │ └── b-employee_solution.dart └── 4-shop_cart_example │ ├── a-violation │ ├── 1_product.dart │ ├── 2_stock.dart │ ├── 3_cart.dart │ └── main.dart │ └── b-solution │ ├── 1_product.dart │ ├── 2_stock.dart │ ├── 3_cart.dart │ ├── 4_invoice.dart │ └── main.dart ├── 2-Open_Closed ├── 1-guitar_example │ ├── guitar_problem.dart │ └── guitar_solution.dart ├── 2_shape_example │ ├── shape_problem.dart │ └── shape_solution.dart └── 3-employee_example │ ├── a-violation │ ├── a-employee_violation.dart │ └── b-employee_violation_affter_extension.dart │ └── b-solution │ └── a-abstract_employee.dart ├── 3-Liskov_Substitution ├── 1-rectangle_example │ ├── 1_rectangle_violation.dart │ └── 2_rectangele_solution.dart └── 2-post_example │ ├── 1-violation │ ├── 1-post_database.dart │ ├── 2-posts_classes.dart │ └── 3-client.dart │ └── 2-solution │ ├── 1-post_database.dart │ ├── 2-posts_classes.dart │ └── 3-client.dart ├── 4-Interface_Segregation ├── 1-parking_example │ ├── 1-parking_violation.dart │ └── 2-parking_solution.dart ├── 2-order_example │ ├── 1-order_violation.dart │ ├── 2-order_interfaces_solution.dart │ └── 3-order_impl_solution.dart └── 3-worker_example │ ├── 1-worker_violation.dart │ └── 2-worker_solution.dart ├── 5-Dependency_inversion ├── 1-database_example │ ├── 1-database_violation.dart │ └── 2-database_solution.dart ├── 1-delivery_example │ ├── 1-delivery_violation.dart │ └── 2-delivery_solution.dart ├── 2-delivery_example │ ├── 1-delivery_violation.dart │ └── 2-delivery_solution.dart ├── 2-notification_example │ ├── 1-violation │ │ ├── 1-mail.dart │ │ ├── 2-notification.dart │ │ └── 3-client.dart │ └── 2-solution │ │ ├── 1-mail.dart │ │ ├── 2-notification.dart │ │ └── 3-client.dart └── 3-notification_example │ ├── 1-violation │ ├── 1-mail.dart │ ├── 2-notification.dart │ └── 3-client.dart │ └── 2-solution │ ├── 1-mail.dart │ ├── 2-notification.dart │ └── 3-client.dart ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/.gitignore -------------------------------------------------------------------------------- /1-Single_Responsibility/1-custoumer_example/a-customer_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/1-custoumer_example/a-customer_violation.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/1-custoumer_example/b-customer_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/1-custoumer_example/b-customer_solution.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/2-book_example/a-book_model.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/2-book_example/a-book_model.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/2-book_example/b-invoice_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/2-book_example/b-invoice_violation.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/2-book_example/c-invoice_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/2-book_example/c-invoice_solution.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/3-employee_example/a-employee_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/3-employee_example/a-employee_violation.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/3-employee_example/b-employee_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/3-employee_example/b-employee_solution.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/a-violation/1_product.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/a-violation/1_product.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/a-violation/2_stock.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/a-violation/2_stock.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/a-violation/3_cart.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/a-violation/3_cart.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/a-violation/main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/a-violation/main.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/b-solution/1_product.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/b-solution/1_product.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/b-solution/2_stock.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/b-solution/2_stock.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/b-solution/3_cart.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/b-solution/3_cart.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/b-solution/4_invoice.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/b-solution/4_invoice.dart -------------------------------------------------------------------------------- /1-Single_Responsibility/4-shop_cart_example/b-solution/main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/1-Single_Responsibility/4-shop_cart_example/b-solution/main.dart -------------------------------------------------------------------------------- /2-Open_Closed/1-guitar_example/guitar_problem.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/1-guitar_example/guitar_problem.dart -------------------------------------------------------------------------------- /2-Open_Closed/1-guitar_example/guitar_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/1-guitar_example/guitar_solution.dart -------------------------------------------------------------------------------- /2-Open_Closed/2_shape_example/shape_problem.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/2_shape_example/shape_problem.dart -------------------------------------------------------------------------------- /2-Open_Closed/2_shape_example/shape_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/2_shape_example/shape_solution.dart -------------------------------------------------------------------------------- /2-Open_Closed/3-employee_example/a-violation/a-employee_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/3-employee_example/a-violation/a-employee_violation.dart -------------------------------------------------------------------------------- /2-Open_Closed/3-employee_example/a-violation/b-employee_violation_affter_extension.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/3-employee_example/a-violation/b-employee_violation_affter_extension.dart -------------------------------------------------------------------------------- /2-Open_Closed/3-employee_example/b-solution/a-abstract_employee.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/2-Open_Closed/3-employee_example/b-solution/a-abstract_employee.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/1-rectangle_example/1_rectangle_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/1-rectangle_example/1_rectangle_violation.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/1-rectangle_example/2_rectangele_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/1-rectangle_example/2_rectangele_solution.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/1-violation/1-post_database.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/1-violation/1-post_database.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/1-violation/2-posts_classes.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/1-violation/2-posts_classes.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/1-violation/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/1-violation/3-client.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/2-solution/1-post_database.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/2-solution/1-post_database.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/2-solution/2-posts_classes.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/2-solution/2-posts_classes.dart -------------------------------------------------------------------------------- /3-Liskov_Substitution/2-post_example/2-solution/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/3-Liskov_Substitution/2-post_example/2-solution/3-client.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/1-parking_example/1-parking_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/1-parking_example/1-parking_violation.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/1-parking_example/2-parking_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/1-parking_example/2-parking_solution.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/2-order_example/1-order_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/2-order_example/1-order_violation.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/2-order_example/2-order_interfaces_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/2-order_example/2-order_interfaces_solution.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/2-order_example/3-order_impl_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/2-order_example/3-order_impl_solution.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/3-worker_example/1-worker_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/3-worker_example/1-worker_violation.dart -------------------------------------------------------------------------------- /4-Interface_Segregation/3-worker_example/2-worker_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/4-Interface_Segregation/3-worker_example/2-worker_solution.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/1-database_example/1-database_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/1-database_example/1-database_violation.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/1-database_example/2-database_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/1-database_example/2-database_solution.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/1-delivery_example/1-delivery_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/1-delivery_example/1-delivery_violation.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/1-delivery_example/2-delivery_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/1-delivery_example/2-delivery_solution.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-delivery_example/1-delivery_violation.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-delivery_example/1-delivery_violation.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-delivery_example/2-delivery_solution.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-delivery_example/2-delivery_solution.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/1-violation/1-mail.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/1-violation/1-mail.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/1-violation/2-notification.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/1-violation/2-notification.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/1-violation/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/1-violation/3-client.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/2-solution/1-mail.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/2-solution/1-mail.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/2-solution/2-notification.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/2-solution/2-notification.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/2-notification_example/2-solution/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/2-notification_example/2-solution/3-client.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/1-violation/1-mail.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/1-violation/1-mail.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/1-violation/2-notification.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/1-violation/2-notification.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/1-violation/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/1-violation/3-client.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/2-solution/1-mail.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/2-solution/1-mail.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/2-solution/2-notification.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/2-solution/2-notification.dart -------------------------------------------------------------------------------- /5-Dependency_inversion/3-notification_example/2-solution/3-client.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/5-Dependency_inversion/3-notification_example/2-solution/3-client.dart -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/SOLID-Principles/HEAD/README.md --------------------------------------------------------------------------------