ജാവാസ്ക്രിപ്റ്റിലെ ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് (Object-Oriented Programming in JavaScript)
ചെറിയ പ്രോജക്റ്റുകൾക്കായി കോഡ് എഴുതുന്നത് എളുപ്പമാണ്. എന്നാൽ നിങ്ങളുടെ പ്രോജക്റ്റ് വലുതാകുമ്പോൾ അത് പ്രയാസകരമായിത്തീരുന്നു.
ഒരു Quiz App-ഉം Mobile Banking UI-ഉം നിർമ്മിക്കുന്നതിനിടയിലാണ് ഞാൻ ഇത് മനസ്സിലാക്കിയത്. തുടക്കത്തിൽ ലളിതമായ ഫംഗ്ഷനുകളും ഒബ്ജക്റ്റുകളും നന്നായി പ്രവർത്തിച്ചു. എന്നാൽ കൂടുതൽ ഫീച്ചറുകൾ ചേർക്കപ്പെട്ടതോടെ കോഡ് കുഴപ്പത്തിലായി. അത് പരിഹരിക്കാനും വീണ്ടും ഉപയോഗിക്കാനും പ്രയാസമായിരുന്നു.
അപ്പോഴാണ് ഞാൻ Object-Oriented Programming (OOP) കണ്ടെത്തിയത്. ഒബ്ജക്റ്റുകളെ അടിസ്ഥാനമാക്കി കോഡ് ക്രമീകരിക്കാൻ OOP നിങ്ങളെ സഹായിക്കുന്നു. ഇത് നിങ്ങളുടെ ജോലി കൂടുതൽ വൃത്തിയുള്ളതാക്കാനും എളുപ്പത്തിൽ വികസിപ്പിക്കാനും (scale) സഹായിക്കുന്നു.
ജാവാസ്ക്രിപ്റ്റിലെ OOP-യുടെ പ്രധാന ആശയങ്ങൾ താഴെ പറയുന്നവയാണ്:
Classes and Objects ഒരു ക്ലാസ് എന്നത് ഒരു ബ്ലൂപ്രിന്റ് (blueprint) ആണ്. ആ ബ്ലൂപ്രിന്റ് ഉപയോഗിച്ച് നിങ്ങൾ നിർമ്മിക്കുന്ന യഥാർത്ഥ വസ്തുവാണ് ഒബ്ജക്റ്റ്. ഉദാഹരണത്തിന്, ഒരു Car ക്ലാസ് ഒരു കാർ എന്താണെന്ന് നിർവചിക്കുന്നു. ഒരു Toyota ആ ക്ലാസിന്റെ ഒരു ഒബ്ജക്റ്റാണ്.
Constructors ഒരു ഒബ്ജക്റ്റ് നിർമ്മിക്കുമ്പോൾ സ്വയമേവ പ്രവർത്തിക്കുന്ന ഒരു മെത്തേഡ് ആണ് കൺസ്ട്രക്റ്റർ (constructor). ഇത് നിങ്ങളുടെ ഒബ്ജക്റ്റിന് ആവശ്യമായ പ്രാരംഭ വിവരങ്ങൾ (initial data) ക്രമീകരിക്കുന്നു.
Inheritance ഒരു ക്ലാസിന് മറ്റൊരു ക്ലാസിൽ നിന്നുള്ള സവിശേഷതകൾ സ്വീകരിക്കാൻ കഴിയും. ഇത് ഒരേ കോഡ് തന്നെ വീണ്ടും വീണ്ടും എഴുതുന്നത് ഒഴിവാക്കുന്നു. പാരന്റ് ക്ലാസിനെ (parent class) വിളിക്കാൻ നിങ്ങൾ
super()കീവേഡ് ഉപയോഗിക്കുന്നു.Encapsulation ഡാറ്റ മറച്ചുവെക്കുക എന്നാണ് ഇതിനർത്ഥം. കോഡിന്റെ മറ്റ് ഭാഗങ്ങൾക്ക് അബദ്ധത്തിൽ മാറ്റം വരുത്താൻ കഴിയാത്ത രീതിയിൽ സെൻസിറ്റീവ് ആയ വിവരങ്ങൾ നിങ്ങൾക്ക് പ്രൈവറ്റ് (private) ആയി സൂക്ഷിക്കാം. ജാവാസ്ക്രിപ്റ്റിൽ, പ്രൈവറ്റ് ഫീൽഡുകൾക്കായി നിങ്ങൾ
#ചിഹ്നം ഉപയോഗിക്കുന്നു.Abstraction സങ്കീർണ്ണമായ കാര്യങ്ങൾ മറച്ചുവെക്കുക എന്നതാണ് അബ്സ്ട്രാക്ഷൻ (Abstraction). ഉപയോക്താവിന് ആവശ്യമുള്ള ഭാഗങ്ങൾ മാത്രം നിങ്ങൾ കാണിക്കുന്നു. ഒരു കോഫി മെഷീനെക്കുറിച്ച് ചിന്തിക്കുക. കോഫി ലഭിക്കാനായി നിങ്ങൾ ഒരു ബട്ടൺ അമർത്തുന്നു. മെഷീൻ എങ്ങനെയാണ് വെള്ളം ചൂടാക്കുന്നത് എന്ന് നിങ്ങൾ അറിയേണ്ടതില്ല.
Polymorphism വ്യത്യസ്ത ക്ലാസുകൾക്ക് ഒരേ മെത്തേഡ് പേര് ഉപയോഗിക്കാനും എന്നാൽ വ്യത്യസ്ത രീതിയിൽ പ്രവർത്തിക്കാനും ഇത് അനുവദിക്കുന്നു. ഒരു Dog ക്ലാസിനും ഒരു Cat ക്ലാസിനും
speak()എന്ന മെത്തേഡ് ഉണ്ടായിരിക്കാം, എന്നാൽ ഒന്ന് കുരയ്ക്കുകയും മറ്റൊന്ന് മ്യാവൂ എന്ന് ശബ്ദിക്കുകയും ചെയ്യുന്നു.Getters and Setters ആളുകൾ നിങ്ങളുടെ ഡാറ്റ എങ്ങനെ വായിക്കുന്നു അല്ലെങ്കിൽ മാറ്റം വരുത്തുന്നു എന്ന് നിയന്ത്രിക്കാൻ ഇവ നിങ്ങളെ അനുവദിക്കുന്നു.
എന്തുകൊണ്ട് OOP ഉപയോഗിക്കണം?
• നിങ്ങൾക്ക് കോഡ് കൂടുതൽ തവണ വീണ്ടും ഉപയോഗിക്കാം. • നിങ്ങളുടെ കോഡ് ക്രമമായി ഇരിക്കുന്നു. • പരിപാലനം (Maintenance) എളുപ്പമാകുന്നു. • പിശകുകൾ കുറയ്ക്കാം.
ഈ അടിസ്ഥാന തത്വങ്ങൾ പഠിക്കുന്നത് പ്രൊഫഷണൽ ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ നിങ്ങളെ സഹായിക്കും.