# Lexicon terms whose category is solid-object-oriented-design

> 11 records

This index as JSON: https://banes-lab.com/json/api/facets/lexicon/category/solid-object-oriented-design

## Entries

- [Broken Inheritance](https://banes-lab.com/records/lexicon/broken-inheritance.md): A subclass that violates its base type's contract, for example by an override that changes the expected inputs or outputs, so substituting it breaks callers that rely on the base behavior.
- [Concrete Dependency](https://banes-lab.com/records/lexicon/concrete-dependency.md): Depending directly on a concrete implementation instead of an abstraction, coupling high-level code to low-level detail.
- [Fat Interface](https://banes-lab.com/records/lexicon/fat-interface.md): An interface bundling many unrelated operations, forcing clients to depend on methods they never call.
- [Switch-Based Extension](https://banes-lab.com/records/lexicon/switch-based-extension.md): Extending behavior by editing a growing switch or conditional on a type instead of adding a new polymorphic type.
- [Type Switching](https://banes-lab.com/records/lexicon/type-switching.md): Branching on an object's concrete type instead of dispatching through a shared polymorphic interface.
- [Consumer-Specific Contracts](https://banes-lab.com/records/lexicon/consumer-specific-contracts.md): The ability to give each client an interface exposing only the operations it uses.
- [Feature Extension without Modification](https://banes-lab.com/records/lexicon/feature-extension-without-modification.md): The ability to add new behavior by writing new code rather than editing existing, tested code.
- [Contract Preservation](https://banes-lab.com/records/lexicon/contract-preservation.md): The requirement that a subtype honor every behavioral guarantee of the type it replaces.
- [Role-Specific Interfaces](https://banes-lab.com/records/lexicon/role-specific-interfaces.md): The requirement that interfaces be defined per client role rather than as one general-purpose surface.
- [Interface Proliferation](https://banes-lab.com/records/lexicon/interface-proliferation.md): The degree to which splitting interfaces finely multiplies the number of small interfaces to manage.
- [Narrow Specialized Behavior](https://banes-lab.com/records/lexicon/narrow-specialized-behavior.md): The degree to which honoring a base type's contract constrains a subtype from specializing its own behavior.
