Design
- Composition over Inheritance
- Immutability
- Law of Demeter
- Nulls & Null Objects
- Open/Closed Principle
- Single Responsibility Principle
- Small
- Tiny Types
The preference to compose behaviour from object rather inherit behaviour from objects.
State cannot be modified once it has been created.
An implementation of loose coupling.
Excessive null checking can be alleviated by the use of the Null Object Pattern.
Open for extension, closed for change.
A class or method should only have a single reason to change.
Keeping objects small makes them easier to understand.
Tiny or Micro types wrap primitive types in a class to provide stronger typing and cohesive functionality.