# Subclass Explosion

> Creating a distinct subclass for every combination of optional features instead of composing them at runtime.

Record: `lexicon:subclass-explosion`
Kind: anti-pattern
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-subclass-explosion

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Per-Instance Duplicate State](https://banes-lab.com/records/lexicon/per-instance-duplicate-state.md) and before [High-Cardinality Object Reuse](https://banes-lab.com/records/lexicon/high-cardinality-object-reuse.md).

## Category

- [Structural Patterns](https://banes-lab.com/records/lexicon-category/structural-patterns.md)

## Negated by

- [Decorator Pattern](https://banes-lab.com/records/architecture/decorator-pattern.md)

## Linked from

- [Structural Patterns](https://banes-lab.com/ontology/principles/architecture-category-structural-patterns.md)
