SOLID / Object-Oriented Design
Kind: category
Record: architecture-category:solid-object-oriented-design
Canonical: Ontology
The SOLID / Object-Oriented Design category holds 5 architecture principles.
Listed in Principle categories, after Core Modular Design and before Event / Messaging / Asynchronous Architecture.
Principle
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Polymorphism
Layer
Linked from
SOLID / Object-Oriented Design
Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.
Relations diagram
flowchart LR
n_interface_segregation["Interface Segregation Principle (ISP)"]
n_dependency_inversion["Dependency Inversion Principle (DIP)"]
n_open_closed["Open/Closed Principle (OCP)"]
n_liskov_substitution["Liskov Substitution Principle (LSP)"]
n_polymorphism["Polymorphism"]
n_liskov_substitution --> n_polymorphism
n_polymorphism --> n_open_closedInterface Segregation Principle (ISP)
- Kind: principle
- Category: SOLID / Object-Oriented Design
- Severity: mandatory
- Scope: interface, service, module
- Aliases: ISP, Interface Segregation Principle
- Layer: Structural Core
Dependency Inversion Principle (DIP)
- Kind: principle
- Category: SOLID / Object-Oriented Design
- Severity: mandatory
- Scope: module, component, layer
- Aliases: DIP, Dependency Inversion Principle
- Layer: Structural Core
Open/Closed Principle (OCP)
- Kind: principle
- Category: SOLID / Object-Oriented Design
- Severity: recommended
- Scope: class, module, component
- Aliases: OCP, Open-Closed Principle
- Layer: Structural Core
Liskov Substitution Principle (LSP)
- Kind: principle
- Category: SOLID / Object-Oriented Design
- Severity: mandatory
- Scope: class, interface, type hierarchy
- Aliases: LSP, Liskov Substitution Principle, Behavioral Subtyping
- Layer: Structural Core
Polymorphism
- Kind: mechanism
- Category: SOLID / Object-Oriented Design
- Severity: recommended
- Scope: class, interface, runtime
- Layer: Structural Core