Information hiding, as it pertains to computers, is about keeping parts of a program separate from other parts. There are many reasons to do this, one of the most common being ease of upgrading. If a program keeps its core separate from its interface, then one or the other can easily be changed without affecting its partner. This allows small changes to the program’s core features or the potential for a scalable interface, all while providing a simple upgrade process for the program. The key part of information hiding is encapsulation, keeping each segment of the program separate from all others.
There are many different ways to write computer programs. Early languages required the programmer to write the program in a continuous sequence; the first line of the program was at the top and the last line was at the bottom. As the program functioned, it basically moved downward through the code.
Modern programming languages rarely work in so strict a manner. Many rely on individual “objects” that will each perform a specific task. This not only simplifies writing the program, but it allows a specific piece of code to operate over and over without needing to be rewritten. For example, if the program requires a result from a specific math function five times, rather than writing that process out five times, the programmers will make that function into an object and have the program call it up five times.
The processes used in information hiding rely on the object nature of programming. When writing a program that utilizes these concepts, the objects are designated for individual portions of the program. In this case, a specific object may have multiple versions, each called on by a different segment of the program. In the example above, the same call is made five times in the program. If two of those calls were made by the interface and the core program made three, then the programmers would write two objects that were practically identical.
The main reason why programs use information hiding is to simplify modifications. If a portion of the program uses only its own objects, it is easier to modify that portion of the program. If objects are shared across the program, one small change could cause a failure in a seemingly unrelated part of the system.
The secondary reason for information hiding is security. If every part of a program operates as independently as possible, it is more difficult for a harmful process to cascade through the system. For instance, if a malicious program gains access to a certain part of the encapsulated system, it can only access the portion that it initially encounters. The other parts of the program remain, at least temporarily, untouched.