SOLID principles are the set of principle fist given by Robert.C.Martin. SOLID principle as name given its set of principle that allows building SOLID software system (i.e. Application, Application Module), if one implement software according to this set of principle.
SOLID software system means its allows to build system that is
Note: This is my interpretation of the arranging thigs.
So as per image
SOLID software system means its allows to build system that is
- Easy to maintain
- Easy to extend
- Easy to understand
- Easy to implement
- Easy to explain
Note: This is my interpretation of the arranging thigs.
So as per image
- OOD Principle (Abstraction, Encapsulation, Inheritance, Polymorphism)
- SOLID principle
- Software Design Patterns (GOF patterns, Dependency injection & patterns)
- Martin Flower’s Enterprise Application Architectures Pattern (additional but required)
- Domain Driven Design Architecture (additional but required)
- Single Responsibility Principle
Principle is related to Designing software module, class or function that should perform only one task. So this principle is about Creation.
In Detail Read : Single Responsibility Principle In Detail
- Open/Close Principle
Principle is applied after 1 (Single Responsibility Principle), again this principle is related to Designing module, class or function. But it about closing already designed thing for modification but opening designed thing for extension i.e. extending functionality. So this principle is about extension.
In Detail Read : Open Closed Principle - Liskov Substitution Principle
Principle is related to substitution of child in place of its parent. So principle is about relationship i.e. inheritance.
In Detail Read : Liskov Substitution Principle - Interface Segregation Principle
Principle is related to designing of interfaces as one of the basic rules of designing says depends on abstraction. Principle is about design interface such a way, so that client of interface not force to implement not required things. So principle is about efficient interface design.
In Detail Read : Interface Segregation Principle - Dependency Inversion Principle
Principle is related to designing decoupling modules, classes of software system. This principle mostly applied after 4 (Interface Segregation principle) because interface are one form of abstraction and this principle is related to Details (module/class) should depend on abstraction, and abstraction should not depend on detail. So this principle is about creating loosely coupled system.
In Detail Read : Dependency Inversion Principle
No comments:
Post a Comment