The Object Model
I'm reading Object-Oriented Analysis and Design with Applications and just wanted to get down a few quotes from Chapter 2 The Object Model.
Foundations of The Object Model
Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships.
Object-oriented design is a method of design encompassing the process of object-oriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design.
Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain.
Four major elements
There are four major elements of The Object Model
An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer.
Encapsulation is the process of hiding all of the details of an aobject that do not contribute to its essential characteristics.
Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules.
Hierarchy is a ranking and ordering of abstractions.
Three minor elements
There are three minor elements of The Object Model
Typing is the enforcement of the class of an object, such that objects of different types may not be interchanged, or at most, they may be interchanged only in very restricted ways.
Concurrency is the property that distinguishes an active object from one that is not active.
Persistence is the proeprty of an object through which its existence trancends time (i.e. the object continues to exist after its creator ceases to exists) and/or space (i.e. the object's location moves from the address space in which it was created).
See something wrong or got something to add/change? Fork this git repo and send me a pull request
If you particularly enjoy my work, I appreciate donations given with Gitcoin.co