SOLID up:: Object Oriented Programming Single responsibility principle Open-closed principle Liskov substitution principle Interface segregation principle Dependency Inversion principle