- SOLID
The principles when applied together intend to make it more likely that a programmer will create a system that is easy to maintain and extend over time
Single responsibility principle
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)
Open/closed principle
“software entities … should be open for extension, but closed for modification.”
Liskov substitution principle
“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
Interface segregation principle
“many client-specific interfaces are better than one general-purpose interface
Dependency inversion principle
one should “Depend upon Abstractions. Do not depend upon concretions.
http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)