Skip to main content

13 docs tagged with "abstraction"

View all tags

Creator

Assign object creation responsibility to the class best suited to create instances

Dependency Inversion Principle

High-level modules should not depend on low-level modules; both should depend on abstractions. Invert the dependency flow.

DRY: Don't Repeat Yourself

Master DRY principle: eliminate knowledge duplication for maintainable code, improved consistency, and reduced bugs.

Encapsulate What Varies

Identify volatile aspects of your system and hide them behind stable interfaces to reduce coupling and change impact.

Iterator Pattern

Access elements of a collection sequentially without exposing its underlying representation

Low Coupling

Minimize dependencies between classes to improve flexibility, testability, and maintainability

Open/Closed Principle

Software entities should be open for extension, closed for modification. Design for change without breaking existing code.

Protected Variations

Protect classes from variations in other classes using abstraction and stable interfaces

Pure Fabrication

Create artificial classes to represent operations when assigning to domain objects would violate other principles