Robert C. Martin penned the following articles concerning the principles
of object oriented programming.
- The Open-Closed Principle
-
Software entities (classes, modules, functions, etc.)
should be open for extension, but closed for modification.
- The Liskov Substitution Principle
- [paraphrased] Functions that use pointers or references to base
classes must be able to use objects of derived classes without
knowing it.
- The Dependency Inversion Principle
-
- High level modules whould not depend upon low level modules.
Both should depend upon abstractions.
- Abstractions should not depend upon details. Details should depend upon
abstractions.
-
- The Interface Segregation Principle
-
Clients should not be forced to depend upon interfaces that they do not use.
The Robert C. Martin "principle" (and other) articles can be found on the Object Mentor website
here :
http://www.objectmentor.com/resources/publishedArticles.html