by Mark Shiffer
11. February 2009 18:35
Jeff Atwood had a pretty good post over on his blog that echoes some of my same sentiments regarding strict adherence to some set of rules/patterns without room for interpretation, thought, adaptation and essentially doing what makes the most sense for one’s particular situation/project.
That being said though, he did provide a good list of some standard principles related to SOLID object oriented design principles along with links to related PDFs that I am repeating here for reference:
The Single Responsibility Principle
A class should have one, and only one, reason to change.
The Open Closed Principle
You should be able to extend a classes behavior, without modifying it.
The Liskov Substitution Principle
Derived classes must be substitutable for their base classes.
The Dependency Inversion Principle
Depend on abstractions, not on concretions.
The Interface Segregation Principle
Make fine grained interfaces that are client specific.
The Release Reuse Equivalency Principle
The granule of reuse is the granule of release.
The Common Closure Principle
Classes that change together are packaged together.
The Common Reuse Principle
Classes that are used together are packaged together.
The Acyclic Dependencies Principle
The dependency graph of packages must have no cycles.
The Stable Dependencies Principle
Depend in the direction of stability.
The Stable Abstractions Principle
Abstractness increases with stability.