Thursday, January 31, 2008

Encapsulation need not be informaton hiding

Encapsulation and information hiding are the most mis-used word while describing a component based architecture. Encapsulation refers to the bundling of data with the methods that operate on that data. Often that definition is misconstrued to mean that the data is somehow hidden. In Java, one could have encapsulated data that is not hidden at all.

More information about why Encapsulation is not information hiding is explained here very clearly.

On a similar note, following principles go hand in hand very closely:

1. Encapsulation
2. Modular design
3. Information hiding
4. Isolation
5. Separation of concerns