Object Oriented Design Principles
Nicely explained here :
like MVC, 3-Tier, MVP tells us how overall projects are going to be structured.
allows us to reuse the experience or rather, provides reusable solutions to commonly occurring problems. Example – an object creation problem, an instance management problem, etc.
tell us, do these and you will achieve this. How you will do it is up to you.
object oriented design
In the same way, object oriented design is filled with many principles which let us manage the problems with software design.
Class Design principles – Also called SOLID
Package Cohesion Principles
Package Coupling principle
It’s an acronym of five principles [introduced by Mr. Robert Martin (commonly known as Uncle Bob) i.e.,
- Single responsibility,
- Liskov substitution,
- Interface segregation and
- Dependency inversion.
It’s said (Wikipedia) when all five principles are applied together intend to make it more likely that a programmer will create a system that is easy to maintain and extend over time
Another important Concept: Programming to an Interface
Read from here : http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface
orthogonal design means there is only one way to change the property of the system you are controlling — executing Operation A exerts no impact on Operation B