James Sands wrote:As long as I know I CAN do it, I dont need to KNOW.
One of the classic examples you'll see is that of driving a car.
In order to drive a car, do you need to know:
1. How the internal combustion engine works?
2. The type of brakes your car has?
3. Hydraulics?
4. Electronics?
Obviously, the answer to all the above is 'no'; and furthermore, if you were
thinking about them, it might impair your ability to drive because we puny humans can't deal with too much information at a time.
Same is true of software: If you have a Map of objects, do you care whether it's a HashMap, a TreeMap or a ConcurrentSkipListMap? No. Do you care whether a TreeMap is a red-black tree, an AVL tree, or a splay tree? No.
It's all about managing what a user needs to know to
use something; and in general that means:
the more you can hide, the better.
Winston