Depend in the direction of abstraction. High level modules should not depend upon low level details.
Dec 9, 2022
Clients should not be forced to depend upon interfaces that they do not use.
Nov 24, 2022
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
Nov 9, 2022
A software module (class or method) should be open for extension but closed for modification.
Oct 20, 2022
A software module (class or method) should be open for extension but closed for modification.
Oct 14, 2022
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)
Sep 30, 2022