Principes solides de la programmation

Source:
https://www.geeksforgeeks.org/solid-principle-in-programming-understand-with-real-life-examples/

1. Single Responsibility Principle: It states that 
	“a class should have only one reason to change” 
    which means every class should have a single responsibility
    or single job or single purpose.

2. Open/Closed Principle: It states that
	“software entities (classes, modules, functions, etc.) should be open for 
  	extension, but closed for modification” which means you should be able to 
    extend a class behavior, without modifying it.

3. Liskov’s Substitution Principle: According to this principle “Derived or 
	child classes must be substitutable for their base or parent classes“. 
    This principle ensures that any class that is the child of a parent class 
	should be usable in place of its parent without any unexpected behavior.

4. Interface Segregation Principle: It states that “do not force any client 
	to implement an interface which is irrelevant to them“. Here you should 
    prefer many client interfaces rather than one general interface and 
  	each interface should have a specific responsibility.

5. Dependency Inversion Principle: High-level modules/classes should not depend 
	on low-level modules/classes. Both should depend upon abstractions.
	Abstractions should not depend upon details. 
  	Details should depend upon abstractions.
astr0n0mer