SOLID ਸਾਫਟਵੇਅਰ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਬੁਨਿਆਦੀ ਸਿਧਾਂਤਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਸਾਂਭਣਯੋਗ, ਵਿਸਤ੍ਰਿਤ, ਅਤੇ ਲਚਕਦਾਰ ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। SOLID ਇਹਨਾਂ ਪੰਜ ਸਿਧਾਂਤਾਂ ਦੇ ਸ਼ੁਰੂਆਤੀ ਅੱਖਰਾਂ ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਇੱਕ ਸੰਖੇਪ ਸ਼ਬਦ ਹੈ:
ਸ- Single Responsibility Principle
ਇੱਕ ਕਲਾਸ ਜਾਂ ਮੋਡੀਊਲ ਦੀ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਜ਼ਿੰਮੇਵਾਰੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ ਹੋਰ ਕਾਰਜਕੁਸ਼ਲਤਾਵਾਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਬਿਨਾਂ ਕੋਡ ਦੇ ਆਸਾਨ ਰੱਖ-ਰਖਾਅ ਅਤੇ ਸੋਧ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
ਓ- Open/Closed Principle
ਕੋਡ ਐਕਸਟੈਂਸ਼ਨ ਲਈ ਖੁੱਲ੍ਹਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ(ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸ਼ਾਮਲ ਕਰਨਾ) ਪਰ ਸੋਧ ਲਈ ਬੰਦ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ(ਮੌਜੂਦਾ ਕੋਡ ਨੂੰ ਬਦਲਣਾ ਨਹੀਂ)। ਇਹ ਮੌਜੂਦਾ ਕੋਡ ਨੂੰ ਸੋਧੇ ਬਿਨਾਂ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜੋੜਨ ਲਈ ਵਿਰਾਸਤ, ਇੰਟਰਫੇਸ, ਜਾਂ ਹੋਰ ਐਕਸਟੈਂਸ਼ਨ ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦਾ ਹੈ।
L- Liskov Substitution Principle
ਪ੍ਰੋਗ੍ਰਾਮ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਬਿਨਾਂ ਇੱਕ ਉਪ-ਕਲਾਸ ਦੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਮੂਲ ਸ਼੍ਰੇਣੀ ਦੇ ਆਬਜੈਕਟਾਂ ਲਈ ਬਦਲਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਵਿਰਾਸਤ ਨੂੰ ਸੁਰੱਖਿਅਤ ਅਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ।
ਮੈਂ- Interface Segregation Principle
ਬਹੁਤ ਸਾਰੇ ਤਰੀਕਿਆਂ ਵਾਲੇ ਵੱਡੇ ਇੰਟਰਫੇਸ ਦੀ ਬਜਾਏ ਛੋਟੇ ਅਤੇ ਖਾਸ ਇੰਟਰਫੇਸ ਹੋਣਾ ਬਿਹਤਰ ਹੈ। ਇਹ ਕਲਾਸਾਂ ਨੂੰ ਬੇਲੋੜੇ ਢੰਗਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਮਜਬੂਰ ਹੋਣ ਤੋਂ ਬਚਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
ਡੀ- Dependency Inversion Principle
ਉੱਚ-ਪੱਧਰੀ ਮੈਡਿਊਲਾਂ ਨੂੰ ਹੇਠਲੇ-ਪੱਧਰ ਦੇ ਮੋਡੀਊਲਾਂ 'ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਦੋਵਾਂ ਨੂੰ ਐਬਸਟਰੈਕਸ਼ਨਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਸਿਧਾਂਤ ਨਿਰਭਰਤਾ ਇੰਜੈਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦਾ ਹੈ ਤਾਂ ਕਿ ਮੋਡਿਊਲਾਂ ਵਿਚਕਾਰ ਤੰਗ ਕਪਲਿੰਗ ਨੂੰ ਘੱਟ ਕੀਤਾ ਜਾ ਸਕੇ ਅਤੇ ਸਿਸਟਮ ਨੂੰ ਟੈਸਟ ਕਰਨ ਅਤੇ ਵਧਾਉਣਾ ਆਸਾਨ ਬਣਾਇਆ ਜਾ ਸਕੇ।
SOLID ਸਿਧਾਂਤ ਕੋਡ ਬਣਤਰ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ, ਮਾਡਯੂਲਰਿਟੀ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕਰਦੇ ਹਨ, ਅਤੇ ਤਬਦੀਲੀਆਂ ਨਾਲ ਜੁੜੇ ਜੋਖਮ ਨੂੰ ਘਟਾਉਂਦੇ ਹਨ। ਇਹ ਸਿਧਾਂਤ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਅਤੇ ਵਿਕਾਸ ਵਾਤਾਵਰਨ ਵਿੱਚ ਲਾਗੂ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।