Objects, Components, and COM
- Objects, Components, and COM
- Abstraction and Class Modeling
- Encapsulation
- Polymorphism
- Inheritance
- Association Relationships
- One-to-One Relationships
- One-To-Many Relationships
- Class and Object Naming Conventions
- Component-Based Development
- Component-Based Development and COM
- COM-Definable Entities
- Component Coupling
- Summary
Objects, Components, and COM
Whether you are a seasoned object-oriented developer or someone who is just coming up to speed, it is important to understand some of the basic features that object-oriented programming imparts. Because we will be leveraging these features heavily in our framework in Part II of this book, we are providing a suitable overview in this chapter. To add depth, we will intersperse notes and tips relative to using object-orientation to your advantage in building enterprise applications throughout this chapter.
Object Orientation
Object orientation is not an entirely new concept, but it is becoming more prevalent in the underpinnings of modern applications. It has just been within the last ten years or so that object-orientation migrated from academia and experimentation to a true, commercial-grade development methodology. Since then, nonobject-oriented development has moved into the minority position.
NOTE
One important thing to remember is that simply using an object-capable language does not constitute object-oriented development. In addition, simply defining classes within an object-capable language, without taking advantage of the power of object-orientation, does not necessarily make an enterprise application more robust.
To start a definition of object-orientation is to understand that it is rooted in the management of complexity. Modern applications, with their intrinsic business logic and interactions among data elements, can become burdensome to develop and maintain in a traditional procedural environment. Sometimes just the analysis of the business problem domain can become increasingly overwhelming as the system's scope grows from one of simple data management to one that embodies business process knowledge. Object-orientation helps throughout application development by allowing us to use a similar thought process across the analysis, design, and implementation phases. The basic pillars of object-orientation are abstraction, encapsulation, polymorphism, and inheritance. We will discuss these features of object-orientation and how they enable us to build modular, maintainable, and extensible applications.