JavaScript ನಲ್ಲಿ Factory Functions ಮತ್ತು Constructor Functions

ಒಂದೊಂದಾಗಿ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು (objects) ರಚಿಸುವುದು ಒಂದು ತಪ್ಪು.

ನೀವು ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರ ಅಥವಾ ಸಹಪಾಠಿಗರಿಗಾಗಿ ಮ್ಯಾನುಯಲ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಬರೆದರೆ, ನೀವು ಕೋಡ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತೀರಿ. ನಿಮ್ಮ ಬಳಿ 100 ಬಳಕೆದಾರರಿದ್ದರೆ, ನೀವು ಒಂದೇ ಲಾಜಿಕ್ ಅನ್ನು 100 ಬಾರಿ ಬರೆಯಬೇಕಾಗುತ್ತದೆ. ಇದು ಬಗ್‌ಗಳಿಗೆ (bugs) ಕಾರಣವಾಗುತ್ತದೆ. ನೀವು ನಂತರ ಅಚಾನಕ್ಕಾಗಿ ಯಾವುದಾದರೂ ಪ್ರಾಪರ್ಟಿಯನ್ನು (property) ಬದಲಾಯಿಸಬಹುದು ಮತ್ತು ಇದರಿಂದ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೆಟ್ಟುಹೋಗಬಹುದು.

ಸ್ವಚ್ಛವಾದ ಕೋಡ್ ಬರೆಯಲು ಬದಲಾಗಿ ಈ ಎರಡು ಪ್ಯಾಟರ್ನ್‌ಗಳನ್ನು (patterns) ಬಳಸಿ.

  1. Factory Functions

ಒಂದು ನೈಜ ಫ್ಯಾಕ್ಟರಿಯನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ. ಅಲ್ಲಿ ಕಚ್ಚಾ ವಸ್ತುಗಳು ಒಳಗೆ ಹೋಗುತ್ತವೆ ಮತ್ತು ಸಿದ್ಧಪಡಿಸಿದ ಉತ್ಪನ್ನ ಹೊರಗೆ ಬರುತ್ತದೆ.

ಒಂದು factory function ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು (parameters) ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಿಟರ್ನ್ (return) ಮಾಡುತ್ತದೆ.

Example:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

ಪ್ರಯೋಜನಗಳು:

  1. Constructor Functions

Constructor functions ಕೂಡ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ರಚಿಸುತ್ತವೆ. ಇವು "new" ಕೀವರ್ಡ್ ಮತ್ತು "this" ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸುತ್ತವೆ. ರೂಢಿಯ ಪ್ರಕಾರ (convention), ಇವುಗಳನ್ನು ಕ್ಯಾಪಿಟಲ್ ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕು.

Example:

function Classmate(name) {
    this.name = name
    this.reply = function() {
        return `${this.name} is present`
    }
}

ನೀವು "new" ಬಳಸಿದಾಗ, JavaScript ನಿಮಗಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

ನಿಮಗೆ "return" ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ನ ಅಗತ್ಯವಿಲ್ಲ.

Scaling your code (ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಸ್ಕೇಲ್ ಮಾಡುವುದು)

ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಈ ಪ್ಯಾಟರ್ನ್‌ಗಳನ್ನು ಅರೇಗಳೊಂದಿಗೆ (arrays) ಸಂಯೋಜಿಸಬಹುದು. ಪ್ರತಿಯೊಂದು ಹೆಸರನ್ನು ಟೈಪ್ ಮಾಡುವ ಬದಲು, map ಫಂಕ್ಷನ್ ಬಳಸಿ.

Example:

const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))

ಈಗ ಬಳಕೆಗೆ ಸಿದ್ಧವಾಗಿರುವ ಆಬ್ಜೆಕ್ಟ್‌ಗಳ ಪಟ್ಟಿ ನಿಮ್ಮ ಬಳಿ ಇದೆ.

ಸಾರಾಂಶ:

ಮೂಲ (Source): https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb