While object-oriented user interfaces share some concepts with object-oriented programming, user objects might not necessarily correspond to software objects. Object-oriented programming can make the development of an object-oriented user interface easier. However, an object-oriented user interface can be developed with more traditional programming languages and tools.
The OS/2 Workplace Shell is an example of a user interface developed using object-oriented programming, specifically, the IBM System Object Model. In fact, every user object in the OS/2 Workplace Shell is an instance of a Workplace Shell software class object. There is a one to one correspondence between Workplace Shell (user) objects and Workplace Shell (software) classes. See Workplace Shell Reference for a complete class hierarchy of Workplace Shell objects.
All Workplace Shell classes are derived from a root Workplace Shell class, WPObject, which is derived from the root SOM class, SOMObject. Workplace Shell classes are defined using the SOM's object interface definition language (OIDL). Workplace Shell class libraries are built using the SOM compiler. Workplace Shell objects are instantiated by the Workplace Shell on behalf of the user through the Workplace Shell class list object, installation programs, or batch files. The same rules that apply to SOM classes apply to Workplace Shell classes, with the exception that applications cannot call Workplace Shell methods. (SOM client applications can call SOM methods.)
Some Workplace Shell classes (WPObject, WPAbstract, WPFileSystem, WPTransient) cannot be instantiated. These classes are provided as base classes which define common characteristics and behaviors for descendant classes. Object characteristics and behaviors are defined as methods for the object's class, as well as methods inherited from ancestor classes.
WPObject is the root class for all Workplace Shell classes. It defines behavior common to all Workplace Shell objects. The immediate descendants of WPObject are storage classes, from which all other Workplace Shell classes are derived. Storage classes define methods for storing and retrieving data associated with instances of descendant classes. Storage classes provided with the OS/2 Workplace Shell are shown in the following table:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Class ³Storage of Object Instance Data ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WPAbstract ³Object instance data stored in user profile ³ ³ ³(OS2.INI). ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WPFileSystem ³Object instance data stored in files in the ³ ³ ³file system. ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³WPTransient ³Object instance data not saved. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Objects whose instance data and state is preserved between system shutdown and system startup are called persistent objects. Objects whose instance data and state need not be preserved between system shutdown and system startup are called non-persistent objects.