Abstraction - C++
Abstraction is a very important term in C++ and applications development.
However, it can be a muddle to....... perceive.
An abstraction is the conceptual view in REAL terms of a domain and an
application users requirements. The abstraction is taken of a domain
which the user would like to work with. Once a domain is understood,
entity relationships found within the domain can be identified and defined
in terms of classes and if need be class relationships. That's the domains
description and the "WHAT IS" of the user domain. The description parts
are the "actual" properties of a domain. Working with these properties
in terms of possible purposes and distinctively the user's purpose is
what C++ can do well to bridge any domain into a working application.
To serve user requirements, real properties of the domain are prepared
as classes, object instances, functions etc. These are then processed with
the language mechanisms that C++ offers and in terms of .......the right use
in the right place at the right time. Oh ! don't forget, released from use
at the right place at the right time. That's getting the Abstraction to work
in terms of the application for ( guess what ) the users requirements.
This can be alot of muddle to fun with too doing !
Domains can be abstracted to class and object terms. These terms can
be defined in UML and or directly as class code.
Tips to help guide an abstraction process:
An abstraction is a part of something. The part is defined, written as
parts or whole of that part to yield the user requirements.
An abstraction which is written at the start of an applications development
is that which is understood in working code at the end.
Regardless of any complete definitions of the exact terms the domain
may yield to a final abstraction perhaps only a part of the domain is
required at any given time. Hence, Code writing and so too use.
If an existing abstraction is concisely understood and written then C++
can extend the abstraction to include or fit other abstractions neatly.
Hmmmmm.....Neat inclusions of associated abstraction.......neat !
Abstractions in a viewpoint rationale are vertical, horizontal, diagonal and
can be indepthed of the domain. As are the code definitions which are put
into motion using C++ language semantics. The results are the application
the user wishes to work with.
+ + are the figurative scopes by which you see into the domain using C++.
In closing, C++ really moves the elements of abstraction into the application
domain.
A mention:
C++ was created by Bjarne Stroustrup who got his Doctorate for the effort.
A tip of the hat to the chap, for such a phenomenal tool.
Ha, Interesting having fun with c++.
David W. Stubbs