An example would be a design in which many different advisors or managers stemming from different intermediate hierarchies would need to communicate and weigh out their decisions with only minimal knowledge of the sources of the decisions made by each other. In C++, ET++ and other frameworks require all objects have some basic functionality. ET++ is a large graphical package which can be used in C++. Using ET++, a programmer can quickly build a program with many fancy graphics. It is required that all objects have type information, like in Smalltalk, and be derived from the same base class. In this way the draw_yourself method can be called on any object and it works. Also, one object can question another object as to its type and then decide how to deal with the other object.
OO Paradigm:
There are a bunch of objects including: User, ATM, Bank, and
Account. The ATM contains the Printer, Card Reader, Screen, Keypad, and Money
Dispenser Objects. The User approaches the ATM. The ATM has already
told its Screen to informs the User to talk to the Card Reader. The
ATM has also told the Card Reader to get information from the
User. The User tells the Card
Reader its account information. The Card Reader then returns that
information to the ATM. The ATM then tell the Screen to tell the User
to enter a PIN number and dollar amount requested. The ATM also tells
the Keypad to get the information. The Keypad
returns the PIN number and requested dollar amount. The ATM now
contacts the Bank asking for cash and passing the account
information. The Bank then asks the Account if the information is
correct and the funds are available. The Account then checks the
information and returns yes or no. The Bank then tells the ATM that
it is okay. The ATM then tell the Money Dispenser to give the money.
The Money Dispenser returns okay if it is successful. The ATM then
tells the bank that the money was given. The Bank tell the Account
that the transaction has occured. etc.....