Wading through the marshlands of object oriented programming, one must at one time realize that there are two fundamental skills that one needs, in order to truly embody the spirit of object oriented paradigm.
- The ability to abstract ones thought processes.
- Perceive the harmony within abstract chaos.
Abstraction as the selective examination of a problem.
The target of abstraction is to suppress the inconsequential aspects from those that define a purpose.
The idea is to stress the existence of an object rather than the consequences of it’s existence. Abstraction is always done around the fulcrum of a purpose and this very purpose defines it’s existence.
Many different abstractions of the same thing is possible, depending upon the desired purpose. All abstractions are incomplete and inaccurate. Reality itself is inaccurate; any description of it is an abridgement. All human words and language are abstract and incomplete description of reality.
Even with this fallacy, abstractions define purpose. Hence, strive not for the absolute truth but strive adequacy for some purpose.
There is no single “correct” model of a situation, only adequate and inadequate ones.
Abstraction as the formulation of harmony within chaos.
Processes in life may appear Brownian. But to the eye, it is an unchallenged harmony of a unified purpose.
The existence of harmony is governed by the degree of adequacy of the abstraction. In turn, the existence of harmony allows us to reduce the multiplicity of the abstractions and coerce into a more definite existence of an object.
And if this existence serves our purpose, we then have an adequate abstraction!