

Layer of Abstraction and Level of Indirection are distinct concepts. Indirection may be considered to be a special type of abstraction where the location is abstracted.
#Indirection band series#
You do not access the resource directly, instead you access through a channel that passes your request through a series of servers, applications and routers. If you know a web resource's URI, you can access the resource without knowing its precise location. Indirection refers to making the location of an item transparent. C# itself is not manipulated using machine code, it is manipulated using a "Common Runtime Environment" which itself is an abstraction of a computer and operating system. Internally, the IDE manipulates the widget using another layer of abstraction such as a high level language (such as C#). The position of a screen widget is abstracted out to a visual location in a frame which you can change by dragging the widget around.

The IDE lets you think of the application in terms of easy-to-manipulate items in a What-You-See-Is-What-You-Get manner.

Consider creating a Windows Form application with the Visual Studio IDE.
#Indirection band code#
In programming, a good example is the difference in details between machine code and the various tools for creating applications that are ultimately based on machine code. Abstraction deals with simplification, indirection deals with location.Ībstraction is a mechanism that "hides" complicated details of a object in terms of simpler, easier to manipulate terms.
