Jean-Paul Sartre
writes in Being and Nothingness:"I am responsible for everything...except for my very responsibility, for I am not the foundation of my being."
A programmer provides the foundation for her program.
A good programmer grants her program full responsibility beyond that foundation. Even when a computer user wishes to enter information into a program, it is the program, not the programmer, that handles the new data. The program stands alone, a self-contained unit.
An object-oriented program contains spaces into which parameters can be passed. These spaces allow for different kinds of variables to be taken into the program as parameters, each variable to be dealt with by the program in a distinct way. The original programmer does not need to know about each specific type of variable, only that a variable, some variable, any variable, must be passed. After the programmer defines what needs to be done with a general variable, the programmer is no longer needed.
For example, a programmer can create an object that acts like a factory: it produces an object each time it is activated. The factory accepts the object type as a parameter. Let's say that the original programmer needed her factory to create frogs. She creates an object that passes a frog variable to the factory. Now the factory creates frogs. Now let's say that someone is looking for a way to mass-produce Nike sneakers. He can use the frog factory to make Nike sneakers by passing a Nike sneaker variable instead of a frog, even if the original programmer has never heard of the popular brandname.