Non-interference

Tied to the notion of information hiding is an important principle of non-interference. I leave it to Flo to determine how to run her business. As long as she provides the service I want, namely sending flowers to my friend, I do not really care how she actually operates her business.

Once again, this concept of thinking in terms of objects and the services they provide is an important key in structuring large complex software systems. Components in such a system will be characterized by the service they provide, and not by any internal implementation details. This viewpoint permits several programmers to work on the same system with minimal interference in each others work. It also makes it much easier to carry significant portions of a program from one application to the next.

It is curious that the object-oriented outlook tends to elicit a variety of anthropormorphic descriptions from people. Dan Ingalls, one of the developers of the original Smalltalk systems at Xerox Parc, has described object-oriented programming this way: ``Instead of a bit-grinding processor raping and plundering data structures, we have a universe of well-behaved objects that courteously ask each other to carry out their various desires''.

Another description echos a quote from a famous presidents inagural address: ``Ask not what you can do TO your data structures, but ask what your data structures can do FOR you''

[audio] [real] Text to accompany slide22, in Chapter 1 of An Introduction to Object-Oriented Programming