Difference between revisions of "SOLID"

From Logic Wiki
Jump to: navigation, search
 
Line 5: Line 5:
  
 
* '''S'''ingle Responsibility : a class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class
 
* '''S'''ingle Responsibility : a class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class
* '''O'''pen / Closed Principle : Open for extensibility, close for midification
+
 
 +
This means that every class or similar structure in your code should have only one job. Everything in that class should be related to a single purpose.
 +
 
 +
* '''O'''pen / Closed Principle : Open for extensibility, close for modification
 
* '''L'''iskow's Substitution Principle : “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”
 
* '''L'''iskow's Substitution Principle : “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”
 
* '''I'''nterface Segregation : many client-specific interfaces are better than one general-purpose interface.
 
* '''I'''nterface Segregation : many client-specific interfaces are better than one general-purpose interface.
 
* '''D'''ependency Inversion Principle : one should “Depend upon Abstractions. Do not depend upon concretions. [[Dependency Injection|Dependency injection]] is one method of following this principle.
 
* '''D'''ependency Inversion Principle : one should “Depend upon Abstractions. Do not depend upon concretions. [[Dependency Injection|Dependency injection]] is one method of following this principle.

Latest revision as of 15:19, 25 February 2026

SOLID is the first letters of these principles

  • Single Responsibility : a class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class

This means that every class or similar structure in your code should have only one job. Everything in that class should be related to a single purpose.

  • Open / Closed Principle : Open for extensibility, close for modification
  • Liskow's Substitution Principle : “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”
  • Interface Segregation : many client-specific interfaces are better than one general-purpose interface.
  • Dependency Inversion Principle : one should “Depend upon Abstractions. Do not depend upon concretions. Dependency injection is one method of following this principle.