Can you tell me what is difference between ABSTRACTION and INFORMATION HIDING in software development?
I am confused abstraction hides detail implementation and information hiding abstracts whole details of something.
Home / DeveloperSection / Forums / Abstraction VS Information Hiding VS Encapsulation
Can you tell me what is difference between ABSTRACTION and INFORMATION HIDING in software development?
I am confused abstraction hides detail implementation and information hiding abstracts whole details of something.
Vijay Shukla
12-Jun-2013Abstraction:
"One point of confusion regarding abstraction is its use as both process and an entity. Abstraction, as a process, denotes the extracting of the essential details about an item, or a group of items, while ignoring the inessential details. Abstraction, as an entity, denotes a model, a view, or some other focused representation for an actual item."
Information Hiding:
"Its interface or definition was chosen to reveal as little as possible about its inner workings." — [Parnas, 1972b]
"Abstraction can be […] used as a technique for identifying which information should be hidden."
"Confusion can occur when people fail to distinguish between the hiding of information, and a technique (e.g., abstraction) that is used to help identify which information is to be hidden."
Encapsulation:
"It […] refers to building a capsule, in the case a conceptual barrier, around some collection of things." — [Wirfs-Brock et al, 1990]
"As a process, encapsulation means the act of enclosing one or more items within a […] container. Encapsulation, as an entity, refers to a package or an enclosure that holds (contains, encloses) one or more items."
"If encapsulation was 'the same thing as information hiding,' then one might make the argument that 'everything that was encapsulated was also hidden.' This is not obviously not true."