Stable Abstraction Principle (SAP)

Last updated Sep 15th, 2019

About this...

The more stable a component is, the more abstract it should be

If a component is really stable, it's likely it's going to be serving more purposes for more groups of people, and for different problems.

In order to prevent a component from becoming too specific or rigid, we should primarily use abstract classes.

Abstract classes work well for defining the high-level policy and leaving room for various implementations of the low-level details.



4 months ago

Thanks for this Post, I believe this principle is one of the most important but underestimated principle in designing any applications.

Vít Herain
13 days ago

I don’t agree here. I think inheritance is a bad practise and should be avoided if possible. Developers should rather prefer compostition when defining various implementation by wrapping a more general component and enhancing it with their specific logic.