Terminology review
Classes, properties, and
methods
In object-oriented programming, you create reusable classes to
perform application processing. These classes include properties and
methods that define the class’s behavior. To perform application
processing, you create instances of these classes. PowerBuilder implements
these concepts as follows:
-
Classes
PowerBuilder objects (such as windows, menus, window controls,
and user objects) -
Properties
Object variables and instance variables
-
Methods
Events and functions
The remaining discussions in this chapter use this PowerBuilder
terminology.
Fundamental principles
Object-oriented programming tools support three fundamental
principles: inheritance, encapsulation, and polymorphism.
-
Inheritance
Objects can be derived from existing objects, with access to
their visual component, data, and code. Inheritance saves coding time,
maximizes code reuse, and enhances consistency. A descendant object is
also called a subclass. -
Encapsulation
An object contains its own data and code, allowing outside
access as appropriate. This principle is also called information
hiding. PowerBuilder enables and supports encapsulation by giving you
tools that can enforce it, such as access and scope. However,
PowerBuilder itself does not require or automatically enforce
encapsulation. -
Polymorphism
Functions with the same name behave differently, depending on
the referenced object. Polymorphism enables you to provide a
consistent interface throughout the application and within all
objects.
Visual objects
Many current applications make heavy use of object-oriented features
for visual objects such as windows, menus, and visual user objects. This
allows an application to present a consistent, unified look and
feel.
Nonvisual objects
To fully benefit from PowerBuilder’s object-oriented capabilities,
consider implementing class user objects, also known as nonvisual user
objects:
Standard class user objects
Inherit their definitions from built-in PowerBuilder system objects,
such as Transaction, Message, or Error. The nvo_transaction Transaction
object in the Code Examples sample application is an example of a
subclassed standard class user object. Creating customized standard class
user objects allows you to provide powerful extensions to built-in
PowerBuilder system objects.
Custom class user objects
Inherit their definitions from the PowerBuilder NonVisualObject
class. Custom class user objects encapsulate data and code. This type of
class user object allows you to define an object class from scratch. The
u_business_object user object in the Code Examples sample application is
an example of a custom class user object. To make the most of
PowerBuilder’s object-oriented capabilities, you must use custom class
user objects. Typical uses include:
-
Global variable container
The custom class user object contains variables and functions
for use across your application. You encapsulate these variables as
appropriate for your application, allowing access directly or through
object functions. -
Service object
The custom class user object contains functions and variables
that are useful either in a specific context (such as a DataWindow) or
globally (such as a collection of string-handling functions). -
Business rules
The custom class user object contains functions and variables
that implement business rules. You can either create one object for
all business rules or create multiple objects for related groups of
business rules. -
Distributed computing
The custom class user object contains functions that run on a
server or cluster of servers.
For more information, see Part 6, “Distributed Application
Techniques”.