The document discusses software design principles known as SOLID principles. It introduces each principle - Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation and Dependency Injection. For each principle, it provides a brief definition and example to illustrate how the principle can be applied to create software that is flexible, modular and able to handle changes over time. It concludes by recommending additional resources to learn more about applying these principles.
4. “The intention is that these principles, when
applied together, will make it more likely that
a programmer will create a system that is
easy to maintain and extend over time.”
17. Liskov Substitution Principle
“Let q(x) be a property provable
about objects x of type T.
Then q(y) should be provable for
objects y of type S where S is a
subtype of T.”
27. Dependency Injection Principle
• High-level modules should not
depend on low-level modules. Both
should depend on abstractions.
• Abstractions should not depend
upon details. Details should depend
upon abstractions.
28.
29.
30. SOLID
The only certainty is that your
app will CHANGE. Program
using the S.O.L.I.D. principles to
account for that change.
Flexible, Modular, Decoupled