The Repository Pattern
Null Object Pattern
Command Pattern