Any tour of SOLID should start with the Open/Closed principle. The Open/Closed principle is actually different from the others. All of the others are development practices. OCP is a philosophical goal. Here's the classic statement: Objects should be open for extension but closed for modification. A great phrase, but meaningless unless you've had it explained to you. Now, the SOLID principles are all about improving project velocity. What the Open/Closed Principle actually says is: you don't want to be editing code to change its behaviour. You should be changing a class to fix a bug, not to make it...