SOLID સૉફ્ટવેર ડિઝાઇનમાં મૂળભૂત સિદ્ધાંતોના સમૂહ માટે વપરાય છે જેનો ઉપયોગ જાળવી શકાય તેવી, એક્સ્ટેન્સિબલ અને લવચીક સિસ્ટમો બનાવવા માટે થાય છે. SOLID આ પાંચ સિદ્ધાંતોના પ્રારંભિક અક્ષરો દ્વારા રચાયેલ ટૂંકાક્ષર છે:
એસ- Single Responsibility Principle
વર્ગ અથવા મોડ્યુલની માત્ર એક જ જવાબદારી હોવી જોઈએ. આ અન્ય કાર્યોને અસર કર્યા વિના કોડના સરળ જાળવણી અને ફેરફારમાં મદદ કરે છે.
ઓ- Open/Closed Principle
કોડ એક્સ્ટેંશન માટે ખુલ્લો હોવો જોઈએ(નવી સુવિધાઓ ઉમેરવી) પરંતુ ફેરફાર માટે બંધ(હાલના કોડમાં ફેરફાર ન કરવો). આ હાલના કોડમાં ફેરફાર કર્યા વિના નવી સુવિધાઓ ઉમેરવા માટે વારસા, ઇન્ટરફેસ અથવા અન્ય એક્સ્ટેંશન મિકેનિઝમના ઉપયોગને પ્રોત્સાહિત કરે છે.
એલ- Liskov Substitution Principle
પ્રોગ્રામની શુદ્ધતાને અસર કર્યા વિના પેરન્ટ ક્લાસના ઑબ્જેક્ટ્સ માટે સબક્લાસના ઑબ્જેક્ટ્સ અવેજીપાત્ર હોવા જોઈએ. આ ખાતરી કરે છે કે વારસો સુરક્ષિત રીતે અને યોગ્ય રીતે અમલમાં આવે છે.
હું- Interface Segregation Principle
ઘણી પદ્ધતિઓ સાથે મોટા ઈન્ટરફેસને બદલે નાના અને ચોક્કસ ઈન્ટરફેસ હોય તે વધુ સારું છે. આનાથી વર્ગોને બિનજરૂરી પદ્ધતિઓનો અમલ કરવાની ફરજ પાડવામાં આવતા ટાળવામાં મદદ મળે છે.
ડી- Dependency Inversion Principle
ઉચ્ચ-સ્તરના મોડ્યુલો નિમ્ન-સ્તરના મોડ્યુલો પર આધારિત ન હોવા જોઈએ. બંને એબ્સ્ટ્રેક્શન પર આધાર રાખે છે. આ સિદ્ધાંત મોડ્યુલો વચ્ચે ચુસ્ત જોડાણ ઘટાડવા અને સિસ્ટમને ચકાસવા અને વિસ્તારવામાં સરળ બનાવવા માટે નિર્ભરતા ઇન્જેક્શનના ઉપયોગને પ્રોત્સાહિત કરે છે.
SOLID સિદ્ધાંતો કોડ સ્ટ્રક્ચરને વધારે છે, મોડ્યુલારિટીને પ્રોત્સાહન આપે છે અને ફેરફારો સાથે સંકળાયેલા જોખમને ઘટાડે છે. આ સિદ્ધાંતો વિવિધ પ્રોગ્રામિંગ ભાષાઓ અને વિકાસ વાતાવરણમાં લાગુ કરી શકાય છે.