{"id":456,"date":"2022-08-09T09:30:21","date_gmt":"2022-08-08T23:30:21","guid":{"rendered":"https:\/\/www.kernelio.com\/blog\/?p=456"},"modified":"2022-08-09T09:30:21","modified_gmt":"2022-08-08T23:30:21","slug":"soild-principles","status":"publish","type":"post","link":"https:\/\/www.kernelio.com\/blog\/2022\/08\/09\/soild-principles\/","title":{"rendered":"SOILD Principles"},"content":{"rendered":"<h2 id=\"single-responsibility-principle\" style=\"text-align: left;\">Single-Responsibility Principle<\/h2>\n<blockquote><p>A class should have one and only one reason to change, meaning that a class should have only one job.<\/p><\/blockquote>\n<h2 id=\"open-closed-principle\" style=\"text-align: left;\">Open-Closed Principle<\/h2>\n<blockquote><p>Objects or entities should be open for extension but closed for modification.<\/p><\/blockquote>\n<h2 id=\"liskov-substitution-principle\" style=\"text-align: left;\">Liskov Substitution Principle<\/h2>\n<blockquote><p>Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.\u00a0 A.K.A \u00a0every subclass or derived class should be substitutable for their base or parent class.<\/p><\/blockquote>\n<h2 id=\"interface-segregation-principle\" style=\"text-align: left;\">Interface Segregation Principle<\/h2>\n<blockquote><p>A client should never be forced to implement an interface that it doesn\u2019t use, or clients shouldn\u2019t be forced to depend on methods they do not use.<\/p><\/blockquote>\n<h2 id=\"dependency-inversion-principle\" style=\"text-align: left;\">Dependency Inversion Principle<\/h2>\n<blockquote>\n<p style=\"text-align: left;\">Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Single-Responsibility Principle A class should have one and only one reason to change, meaning that a class should have only one job. Open-Closed Principle Objects or entities should be open for extension but closed for modification. Liskov Substitution Principle Let q(x) be a property provable about objects of x of type T. Then q(y) should&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-456","post","type-post","status-publish","format-standard","hentry","category-software-engineering"],"_links":{"self":[{"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/posts\/456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/comments?post=456"}],"version-history":[{"count":1,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/posts\/456\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/posts\/456\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/media?parent=456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/categories?post=456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kernelio.com\/blog\/wp-json\/wp\/v2\/tags?post=456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}