Folders and files Name Name Last commit message
Last commit date
parent directory
View all files
Python S.O.L.I.D Principles - Create more classes
Use SOLID principles to address design deficiencies
Some problems without SOLID
Mixed responsibility
Missing responsibility
Limited reuse potential
Not substitutable
S.O.L.I.D - Order doesn't matter
Interface segregation
Helps design good classes
Helps write unit test cases
Liskov substitution - how subclasses extend superclasses
Object of superclass S can be replaced with objects of any subclass of S
Helps design good polymorphism
Open/closed - tuning the design
Open to extension means adding subclasses a needed
Closed to modification avoids "tweaking" the code to handle new situations
Dependency inversion - based on packaging the code
A direct dependency on a concrete class needs to be "inverted"
Depend on abstraction classes
Avoid concrete class name dependencies
Single responsibility - summary of other 4 principles
One responsibility per class
"A class should have one reason to change"
Note!! "Single" at what level of abstraction? How are the responsibilities counter?
Don't repeat yourself (DRY)
General responsibility assignment software principles (GRASP)
Test-driven development (TDD)
You can’t perform that action at this time.