Solid Principles
1.Single Responsible Principle 2.Open-Closed Principle 3.Liskovo-Substitution Principle 4.Interface Segregation Principle 5.Dependency Inversion Principle 1.Single Responsible Principle One class one Repository 2.Open-Closed Principle Open for extension, closed for Modification 3.Liskovo-Substitution Principle Types derived from same parent are inter-changeable 4.Interface Segregation Principle Seperate interfaces for seperate functionality 5.Dependency Inversion Principle Depend on abstraction, not on concretion