Update readme.md

Added summary notes and improved formatting.
This commit is contained in:
Darmen Amanbayev 2018-09-22 22:12:36 +06:00 committed by GitHub
parent cc801b80f8
commit 9f4bcb6658
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,18 +1,23 @@
## SOLID Principles Examples in PHP
### Single Responsibility Principle
A class should have one, and only one, reason to change. [Example](./1-single-responsibility-principle.php)
### Single Responsibility Principle ([Example](./1-single-responsibility-principle.php))
This principle is about **actors and high level architecture**.
> A class should have one, and only one, reason to change.
### Open Closed Principle
A class should be open for extension, but closed for modification. [Example](./2-open-closed-principle.php)
### Open Closed Principle ([Example](./2-open-closed-principle.php))
This principle is about **class design and feature extensions**.
> A class should be open for extension, but closed for modification.
### Liskov Substitution Principle
Derived classes must be substitutable for their base classes. [Example](./3-liskov-substitution-principle.php)
### Liskov Substitution Principle ([Example](./3-liskov-substitution-principle.php))
This principle is about **subtyping and inheritance**
> Derived classes must be substitutable for their base classes.
### Interface Segregation Principle
Many client-specific interfaces are better than one general-purpose interface. [Example](./4-interface-segregation-principle.php)
### Interface Segregation Principle ([Example](./4-interface-segregation-principle.php))
This principle is about **business logic to clients communication**.
> Many client-specific interfaces are better than one general-purpose interface.
### Dependency Inversion Principle
Depend upon abstractions. Do not depend upon concretions. [Example](./5-dependency-inversion-principle.php)
### Dependency Inversion Principle ([Example](./5-dependency-inversion-principle.php))
> This principle wires up all **other four principles in a single circle**.
Depend upon abstractions. Do not depend upon concretions.
#### For more information about *Object Oriented Design Principles*, you can refer [this slide](https://viblo.asia/thangtd90/posts/pVYRPJPmG4ng)