Design principles

Fancy words are beeing used by many software developpers. I can hear in my office many people discussing design patterns. I find it curious that most of those developpers knows many of design patterns but don't know anything about design principles. It is usual in our entropic world to do and talk about things without knowing why.

Here are the five design principles u should know, before designing Object Oriented applications.

Open Close Principle
Software entities like classes, modules and functions should be open for extension but closed for modifications.

Dependency Inversion Principle
High-level modules should not depend on low-level modules. Both should depend on abstractions.
Abstractions should not depend on details. Details should depend on abstractions.

Interface Segregation Principle
Clients should not be forced to depend upon interfaces that they don't use.

Single Responsibility Principle
A class should have only one reason to change.

Liskov's Substitution Principle
Derived types must be completely substitutable for their base types.


For more details, check for ur own benefit, this reference:
http://www.oodesign.com/design-principles.html

Comentarios