5.Design Principles
Software Architecture & Engineering · 8 notes
- Open–Closed Principlehistorical
Designing stable boundaries so common extensions require less modification to trusted core code.
- Liskov Substitution Principlehistorical
Ensuring subtypes preserve the behavioral contract expected from the base abstraction.
- Dependency Inversion Principlehistorical
Keeping high-level policy independent from volatile low-level implementation details.
- Single Responsibility Principlehistorical
Grouping behavior around a coherent responsibility and a focused reason to change.
- Interface Segregation Principlehistorical
Keeping contracts focused so clients depend only on capabilities they actually use.
- Law of Demeterhistorical
Reducing knowledge of distant object structure and avoiding brittle navigation through internal collaborators.
- Composition over Inheritancehistorical
Reusing behavior through composition/delegation when subtype inheritance would create unnecessary coupling.
- Object-Oriented Design Principleshistorical
A practical view of SOLID and related principles for controlling coupling, responsibilities, and change.