Principle

Category

Development principles.

Patterns

Dependency inversion principle

Principle

One should depend upon abstractions, not concretions.

Don't repeat yourself (DRY)

Principle

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

Interface segregation principle

Principle

Many client-specific interfaces are better than one general-purpose interface

Liskov substitution principle

Principle

Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.

Open closed principle

Principle

Software entities ... should be open for extension, but closed for modification.

Single responsibility principle

Principle

A class should have one, and only one, reason to change.