The Nature & Need of Abstraction
What is the nature and need for abstraction?
- Abstraction is the process of removing unnecessary details of a problem to focus on the important features to implement in a solution
- Examples of abstraction include modelling a real life object, environment, action, sequence of actions or concept. Implementations of these include:
- a simulator such as a car or flight simulator
- a representation of a building or house in a program or game
- a map of a bus or train route in a city
- When creating a program, developers must identify important features that will contribute to solving the problem or have a role to play in the solution
- A specific example of abstraction would be the London underground train route map; travellers do not need to know the geographical layout of the routes, only that getting on at stop A will eventually transport you to stop B
London Underground train route map
Source: Wikipedia
The geographical London underground train map
Source: Wikimedia
- Another example of abstraction would be implementing the trajectory of a projectile, such as a ball or dart, or the physics of a snooker ball on a snooker table
- Is gravity or air resistance taken into account, if applicable? Is friction?
- The closer the implementation is to reality, the less abstract the solution becomes
- Pong is an example of a highly abstracted game of tennis or badminton
- The momentum of the ball is constant and there are no extraneous factors that affect the game such as friction or gravity