# resources:diagrams:projects:generic:development_view:SOLID # * [[../|(UP)]] {{indexmenu>.#2|nsort tsort}} ## Summary ## @startuml !includeurl http://skysigal.com/_media/resources/configuration/plantuml/minimalist.txt title SOLID Development Patterns class "Single\nResponsibility\Principle" as SRP class "Open\nClose\nPrinciple" as OCP class "Liskov's\nSubstition\nPrinciple" as LSP class "Interface\nSegragation\nPrinciple" as ISP class "Dependency\nInversion\nPrinciple" as DIP SRP -[HIDDEN]RIGHT- OCP OCP -[HIDDEN]RIGHT- LSP LSP -[HIDDEN]RIGHT- ISP ISP -[HIDDEN]RIGHT- DIP note bottom of SRP An object should have one and only one reason to change, meaning that a class should have only one job. endnote note bottom of OCP Objects should be open for extension, but closed for modification. endnote note bottom of LSP Code to the most abstract representation (ie, a base class). endnote note bottom of ISP clients should not be forced to implement/use interface/methods they do not require. endnote note bottom of DIP Entities must depend on abstractions not on concretions. (JGI). endnote @enduml