JavaScript OOP: ਇੱਕ ਮੁਕੰਮਲ ਗਾਈਡ
ਛੋਟੇ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਕੋਡ ਲਿਖਣਾ ਆਸਾਨ ਹੈ। ਵੱਡੀਆਂ ਐਪਸ ਲਈ ਕੋਡ ਨੂੰ ਸੰਭਾਲਣਾ ਮੁਸ਼ਕਲ ਹੈ।
ਮੈਂ ਇਹ ਇੱਕ Quiz App ਅਤੇ Mobile Banking UI ਬਣਾਉਂਦੇ ਸਮੇਂ ਸਿੱਖਿਆ। ਸ਼ੁਰੂ ਵਿੱਚ ਸਧਾਰਨ ਫੰਕਸ਼ਨ ਅਤੇ ਆਬਜੈਕਟ ਕੰਮ ਕਰਦੇ ਸਨ। ਪਰ ਜਿਵੇਂ-ਜਿਵੇਂ ਮੈਂ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (features) ਜੋੜੀਆਂ, ਕੋਡ ਉਲਝਣ ਵਾਲਾ ਹੋ ਗਿਆ। ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਵਰਤਣਾ ਮੁਸ਼ਕਲ ਸੀ ਅਤੇ ਇਸ ਨੂੰ ਠੀਕ ਕਰਨਾ ਹੋਰ ਵੀ ਮੁਸ਼ਕਲ ਸੀ।
ਉਦੋਂ Object-Oriented Programming (OOP) ਨੇ ਸਭ ਕੁਝ ਬਦਲ ਦਿੱਤਾ।
OOP ਕੋਡ ਨੂੰ ਸਿਰਫ਼ ਫੰਕਸ਼ਨਾਂ ਦੀ ਬਜਾਏ ਆਬਜੈਕਟਾਂ (objects) ਦੇ ਆਲੇ-ਦੁਆਲੇ ਸੰਗਠਿਤ ਕਰਦਾ ਹੈ। ਇੱਕ ਆਬਜੈਕਟ ਵਿੱਚ ਡੇਟਾ (properties) ਅਤੇ ਕਾਰਵਾਈਆਂ (methods) ਹੁੰਦੀਆਂ ਹਨ।
ਇੱਕ ਕਾਰ ਬਾਰੇ ਸੋਚੋ। ਇਸ ਦੀਆਂ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (properties) ਜਿਵੇਂ ਕਿ ਰੰਗ ਅਤੇ ਬ੍ਰਾਂਡ ਹੁੰਦੀਆਂ ਹਨ। ਇਸ ਦੀਆਂ ਕੁਝ ਕਾਰਵਾਈਆਂ (actions) ਜਿਵੇਂ ਕਿ start ਅਤੇ stop ਹੁੰਦੀਆਂ ਹਨ।
ਇੱਥੇ ਕੁਝ ਮੁੱਖ ਸੰਕਲਪ ਹਨ ਜੋ ਤੁਹਾਨੂੰ ਜਾਣਨ ਦੀ ਲੋੜ ਹੈ:
• Classes ਅਤੇ Objects ਇੱਕ class ਇੱਕ ਨਕਸ਼ਾ (blueprint) ਹੈ। ਇੱਕ object ਉਹ ਅਸਲ ਚੀਜ਼ ਹੈ ਜੋ ਤੁਸੀਂ ਉਸ ਨਕਸ਼ੇ ਤੋਂ ਬਣਾਉਂਦੇ ਹੋ।
• Constructors ਇੱਕ constructor ਇੱਕ ਵਿਸ਼ੇਸ਼ method ਹੈ। ਇਹ ਨਵਾਂ object ਬਣਾਉਣ ਵੇਲੇ ਇਸਦੇ ਡੇਟਾ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਆਪਣੇ ਆਪ ਚੱਲਦਾ ਹੈ।
• Inheritance
ਇਹ ਇੱਕ class ਨੂੰ ਦੂਜੀ class ਤੋਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲੈਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਇਹ ਤੁਹਾਨੂੰ ਇੱਕੋ ਕੋਡ ਦੋ ਵਾਰ ਲਿਖਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। Parent class ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ super() keyword ਦੀ ਵਰਤੋਂ ਕਰੋ।
• Encapsulation
ਇਹ ਡੇਟਾ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ। ਤੁਸੀਂ ਅੰਦਰੂਨੀ ਵੇਰਵਿਆਂ ਨੂੰ ਲੁਕਾਉਂਦੇ ਹੋ ਅਤੇ ਸਿਰਫ਼ ਉਹੀ ਦਿਖਾਉਂਦੇ ਹੋ ਜੋ ਜ਼ਰੂਰੀ ਹੈ। JavaScript ਵਿੱਚ ਫੀਲਡਸ ਨੂੰ private ਬਣਾਉਣ ਲਈ # symbol ਦੀ ਵਰਤੋਂ ਕਰੋ।
• Abstraction ਇਹ ਗੁੰਝਲਦਾਰ ਲੌਜਿਕ (logic) ਨੂੰ ਲੁਕਾਉਂਦਾ ਹੈ। ਤੁਸੀਂ ਅੰਦਰੂਨੀ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਜਾਣਨ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਇੱਕ ਸਧਾਰਨ ਇੰਟਰਫੇਸ (interface) ਨਾਲ ਕੰਮ ਕਰਦੇ ਹੋ।
• Polymorphism ਇਹ ਵੱਖ-ਵੱਖ classes ਨੂੰ ਇੱਕੋ method ਦੇ ਨਾਮ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਪਰ ਵੱਖ-ਵੱਖ ਕਾਰਵਾਈਆਂ ਕਰਦਾ ਹੈ। ਇੱਕ ਜਾਨਵਰ ਭੌਂਕ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ ਦੂਜਾ ਮਿਆਊਂ-ਮਿਆਊਂ ਕਰ ਸਕਦਾ ਹੈ।
• Getters ਅਤੇ Setters ਇਹ ਤੁਹਾਨੂੰ ਇਹ ਕੰਟਰੋਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ ਕਿ ਲੋਕ ਤੁਹਾਡੇ ਡੇਟਾ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਦੇ ਹਨ ਜਾਂ ਇਸਨੂੰ ਕਿਵੇਂ ਬਦਲਦੇ ਹਨ।
OOP ਦੀ ਵਰਤੋਂ ਕਿਉਂ ਕਰੀਏ?
- ਤੁਸੀਂ ਕੋਡ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਦੁਬਾਰਾ ਵਰਤ ਸਕਦੇ ਹੋ।
- ਤੁਹਾਡਾ ਪ੍ਰੋਜੈਕਟ ਸੰਗਠਿਤ ਰਹਿੰਦਾ ਹੈ।
- ਰੱਖ-ਰਖਾਅ (Maintenance) ਤੇਜ਼ ਹੋ ਜਾਂਦਾ ਹੈ।
- ਜਿਵੇਂ-ਜਿਵੇਂ ਤੁਸੀਂ ਸਕੇਲ ਕਰਦੇ ਹੋ, ਤੁਹਾਡਾ ਆਰਕੀਟੈਕਚਰ ਸਾਫ਼ ਰਹਿੰਦਾ ਹੈ।
ਇਹਨਾਂ ਸਤੰਭਾਂ (pillars) ਵਿੱਚ ਮਾਹਰ ਹੋਣਾ ਤੁਹਾਨੂੰ ਇੱਕ ਬਿਹਤਰ ਡਿਵੈਲਪਰ ਬਣਾਉਂਦਾ ਹੈ। ਆਪਣੇ ਅਗਲੇ ਡੈਸ਼ਬੋਰਡ ਜਾਂ ਈ-ਕਾਮਰਸ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਇਹਨਾਂ ਸੰਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।