Single responsibility, open/closed, Liskov substitution, interface segregation and dependency inversion
Open on Cached Info