User View vs Application View

A primary benefit of the object-oriented approach is its intuitive user interface; a user selects an object and performs a series of predefined actions upon that object. This object-action style of interface encourages the user to explore the application through context-sensitive actions, and reduces the overall complexity of the user's interaction by reducing the levels of hierarchy required for the application.

However, the end user may have a different view of an object-oriented application from that which must necessarily be taken by the application developer. For instance, in the case of a text editor application editing a file, there may in fact be two versions of this file; one existing in memory, being manipulated by the application, and the other stored on a disk. The application would consider these as two separate data objects, each with its own set of methods, and would create two application objects.

Normal user interaction would take place with one object (the memory representation of the file), and when the user selects a "Save" action for the file, a message is passed to the second object (the disk representation of the file) with the information necessary to save updates on disk storage. The user considers the logical data entity as the object being manipulated, while the application must distinguish between the representations of that data entity in various locations within the system. The user's metaphorical view of the data object is therefore not carried over to the application's view, which must by necessity be more concerned with the reality of that object's manipulation.

Note however, that this distinction between representations should not be apparent to the end user. The end user should perceive a single object (the text file) upon which he or she would perform actions. Thus there is a distinction between the user's view and the application's view of the objects. An understanding of this distinction is important in order to comprehend the difference between an object-action user interface and an object-oriented application design.

Figure "Object-Oriented Development Progression"

The two concepts are complementary but distinct. An event-driven, object-action user interface necessarily emerges from an object-oriented application design and implementation. It is not possible to provide such an interface unless the application structure conforms to a certain level of object-oriented principles and practices. This in turn is dependent upon an object-oriented application design. For this reason, the proper implementation of the graphical user interface concepts defined in the IBM Systems Application Architecture CUA Advanced Guide to User Interface Design, requires applications to be designed and implemented using object-oriented guidelines.


[Back: Subclassing]
[Next: Object-Oriented Design]