Open-Closed Principle

E232906

The Open-Closed Principle is a fundamental object-oriented design guideline stating that software entities should be open for extension but closed for modification, enabling systems to grow without altering existing, tested code.

All labels observed (5)

How this entity was disambiguated

Statements (49)

Predicate Object
instanceOf SOLID principle ⓘ
object-oriented design principle ⓘ
software design principle ⓘ
abbreviation OCP ⓘ
appliesTo classes ⓘ
components ⓘ
functions ⓘ
modules ⓘ
services ⓘ
benefit clear separation between stable and variable parts of a system ⓘ
easier addition of new features ⓘ
reduced regression risk ⓘ
contrastsWith designs that require editing existing code for every new requirement ⓘ
discourages frequent changes to existing class implementations ⓘ
modifying stable, tested code ⓘ
encourages use of abstraction ⓘ
use of composition ⓘ
use of inheritance ⓘ
use of interfaces ⓘ
use of polymorphism ⓘ
formulatedBy Bertrand Meyer ⓘ
goal enable extension of behavior without modifying existing code ⓘ
facilitate reuse of existing components ⓘ
improve maintainability of software systems ⓘ
reduce risk of introducing bugs in tested code ⓘ
support scalability of software design ⓘ
influencedBy Bertrand Meyer ⓘ
introducedIn Object-Oriented Software Construction ⓘ
introducedInYear 1988 ⓘ
partOf SOLID principles ⓘ
promotes encapsulation ⓘ
extensibility ⓘ
loose coupling ⓘ
modularity ⓘ
stability of public interfaces ⓘ
relatedTo Dependency Inversion Principle ⓘ
Interface Segregation Principle ⓘ
Liskov Substitution Principle ⓘ
Single Responsibility Principle ⓘ
statedAs software entities should be open for extension but closed for modification ⓘ
typicalImplementation plugin mechanism ⓘ
strategy pattern ⓘ
template method pattern ⓘ
use of configuration or metadata to add behavior ⓘ
usedIn domain-driven design ⓘ
framework design ⓘ
library design ⓘ
object-oriented programming ⓘ
plugin architectures ⓘ

How these facts were elicited

Referenced by (8)

Full triples — surface form annotated when it differs from this entity's canonical label.

Adapter → promotes → Open-closed principle ⓘ
linked to: Open-Closed Principle
State (design pattern) → supports → open/closed principle ⓘ
subject linked to: State
linked to: Open-Closed Principle
Visitor → supports → open/closed principle ⓘ
linked to: Open-Closed Principle
Single Responsibility Principle → relatedTo → Open/Closed Principle ⓘ
linked to: Open-Closed Principle
SOLID principles → consistsOf → Open–Closed Principle ⓘ
linked to: Open-Closed Principle
Visitor design pattern → relatedConcept → open/closed principle ⓘ
linked to: Open-Closed Principle
DIP → relatedTo → Open/Closed Principle ⓘ
linked to: Open-Closed Principle