Patterns
Largely designed for statically typed languages – they rely on having a compiler.
These patterns are designed or intended to:
-
Communicate input and output expectations through API.
-
Ensure correctness through type safety.
Only allow an instance of a type to exist, if it meets certain criteria.
-
Favour compile time errors over runtime errors.
By making it impossible to compile incorrect code, correctness and quality is maintained, with fewer tests.