Intro

There has been a shift in programming languages from POP (Process Oriented Programming) to OOP (Object Oriented Programming).

POP (Process Oriented Programming) conceptually focuses on developing processes whereas OOP develops objects and manages the state inside objects, and the processes involved with objects. A POP program tends to start at the first line of code and then proceed on through the program in a particular sequence.

OOP (Object Oriented Programming) has three signature principles:

The idea is to define a "class" which can be used to instantiate many different individual objects. Instantiating an object is basically allocating memory for your object/data structure. Objects of a class use the class as a template but will have different values for their properties, and do methods as needed, and react to events independently. A Class is a template for creating objects that contain both data and methods that operate on the data.

Furthermore, a "component" can be made which has a family of classes. A "component.class" can be used to instantiate objects in multiple programs.

OOP make programs more modular, and thus easier to debug, reuse, maintain, and enhance, whereas in POP everything is sort of enmeshed and inseparable.

Component technologies (EG: COM) work with the creation of classes, whereas object models (EG: ADO) are describe how to implement a set of classes.

Components

All components are sort of like living creatures that can do the following:

In addition, a component has the following features:

The innards of implementing components, classes, and object is done with the three major standards for components: follows:

Object Models

Object Models are sets of rules that deal with particular components. The object model describes the objects in the model, the relationship between objects within the model, and what the members of the objects. An object model is closer to an API (Application Programming Interface) for developers.

Here is a listing of some major object models:

Page Modified: (Hand noted: 2007-09-14 20:58:21Z) (Auto noted: 2010-02-24 03:01:35Z)