Stable Abstractions Principle

Packages that are maximally stable should be maximally abstract. Unstable packages should be concrete. The abstractness of a package should be in proportion to its stability. (

One of the PrinciplesOfObjectOrientedDesign. Closely related to the StableDependenciesPrinciple.
Also see OpenClosedPrinciple. The reliable part is "closed" but subclassing is "open".
I think that maybe the "should be"s in that should be replaced with "will tend to be"s. Abstract base classes and interfaces are the most stable things in the system -- every time one of them changes it forces a bigger change in one or more other classes. -- PhilGoodwin

CategoryAbstraction CategoryModellingLawsAndPrinciples

EditText of this page (last edited December 29, 2010) or FindPage with title or text search