User Tools

Site Tools


principles:generalization_principle

Generalization Principle

Variants and Alternative Names

  • Build Generality into Software

Context

Definition

A generalized solution, that solves not only one but many problems, is better than a specific one.

Description

There are various ways to make a solution more generally applicable. In the simplest form this can be done by introducing a method with appropriate parameters. Other possibilities are classes, parametric types, callbacks, hook methods, etc.

A general solution abstracts from the specific tasks and solves a superset of them. Parameterization of some kind is used to specify what has to be done in a given situation.

Rationale

Specific solutions tend to be fragile. When requirements change, a specific solution might not fulfill them anymore. In contrast to that a more general solution is more stable so there will be less need to change it.

Moreover a generalized solution can be reused in a variety of other situations. A specific solution can only be reused when exactly the same requirements appear again. So a general solution is much more reusable.

Origin

FIXME

Evidence

Relations to Other Principles

Generalizations

Specializations

Contrary Principles

Complementary Principles

Principle Collections

Example

Description Status

Further Reading

principles/generalization_principle.txt · Last modified: 2020-10-12 19:43 by 159.69.186.191