Meaning of term transparency in software engineering

architecture

Solution

This generally means that it is invisible to the user. The user can use the application, and not know that a feature exists.

So, for caching to be "transparent", the application should not know that a caching layer exists. This is most easily exemplified by the opposite, in that a non-transparent caching layer would require the application invoke methods to check/expire caches.

Problem

Quite often I see myself confused when talking about code transparency. What I'm trying to clarify myself are constructs such as: - This should be transparent to the user - Caching should be transparent to the application Would be great if someone could clarify, with some small pseudo code snippet, what's the actual meaning of such a thing? Thanks

Original source