Abstractions in System Design

Lesson 10 of 25610 min readPremium lesson preview
In this lesson1 sections

Abstractions in System Design

Abstraction lets you reason about a component through its interface and guarantees without following every implementation step. The useful question is which details can be hidden for the decision at hand, and which constraints still matter to the caller.

What is abstraction?

Abstraction presents the properties needed for a task while leaving other details out. This reduces the amount you must consider at once. The bird illustration below shows how a general representation can support a discussion without describing every species.

Abstraction of a bird
Abstraction of a bird

This abstraction allows us to discuss birds as a general category without analyzing specific details.

Note: The right level of detail depends on the question. A general bird shape may be enough to identify a category; a question about flight would need more specific properties.

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.