November 22, 2019

Abstraction

 

Making the comparison between an object and a black box, requires a process of abstraction. Abstraction is a fundamental tool of OOP. So what is meant by this term?

Abstraction removes unnecessary considerations from our attention. It enables us to focus on matters that are considered to be important. When designing and building objects we need to consider just the essential properties that our objects require in order to meet the demands of the system we are engineering. Software engineers are increasingly using OOP to produce highly sophisticated systems that model deeply complex real world situations. Abstraction enables the human brain to manage complexity. One might use the expression "I am trying to see the big picture" when discussing a problem. This indicates an attempt to remove extraneous detail and concentrate on what one considers to be most important.

There are parallels here with painting pictures. If you are viewing a Rembrandt, Picasso, or Rothko picture, you are faced with an abstraction. Each artist concentrated on some aspect of the world that he considered important enough to model in paint, whilst simultaneously excluding a myriad other considerations deemed, or chosen as, unimportant in his scheme of things.

With object technology, "moving up a level" of abstraction helps us to focus on the most important items under consideration. Conversely as we "move down a level", becoming less abstract, we take into consideration more detail, more information. We become more interested in particulars, the minutiae of life. The object paradigm uses abstraction to deal with the most important considerations first. It moves from the highly abstract and generalised, downwards towards the particular, the more specific.

When thinking of objects, one is naturally inclined to think about physical attributes. It is often difficult for a newcomer to OOP to conceive of objects that may lack a tangible equivalent. For example, it may seem easier to grasp the concept of using software to model, or simulate, an artist, or a painting, than it does to model the sale of a painting, an exhibition of paintings, or a queue of prospective buyers (all of which I will show later). Objects can be tangible entities, including people, but they can also be roles, events and organizations.

Next page » Reuse

Previous page « Encapsulation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Up to top of page