SOLID - OOP Principles to Programming
Principles to program by ->
http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
S SRP:
Single responsibility principle
An object should have only a single responsibility.
O OCP:
Open/closed principle
“Software entities … should be open for extension, but closed for modification”.
L LSP:
Liskov substitution principle
“Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”. See also design by contract.
I ISP:
Interface segregation principle
“Many client-specific interfaces are better than one general-purpose interface.”
D DIP:
Dependency inversion principle
One should “Depend upon Abstractions. Do not depend upon concretions.”
Dependency injection is one method of following this principle.