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