ഈ വിപുലമായ പാഠത്തിൽ, PHP-യുടെ ഇന്റർഫേസ് പ്രവർത്തനത്തിന്റെ സങ്കീർണ്ണതകൾ ഞങ്ങൾ പരിശോധിക്കും. ഈ പോസ്റ്റിൽ നിന്ന്, രണ്ട് നിർണായക PHP ആശയങ്ങൾ തമ്മിലുള്ള വ്യത്യാസങ്ങളും സമാനതകളും ഞങ്ങൾ നോക്കാം: ഇന്റർഫേസുകൾ vs അമൂർത്ത ക്ലാസുകൾ. നിങ്ങളുടെ കോഡിലെ ഇന്റർഫേസുകളും അബ്സ്ട്രാക്റ്റ് ക്ലാസുകളും ഉപയോഗിക്കുന്നതിന്റെ ഗുണങ്ങളും ദോഷങ്ങളും ഞങ്ങൾ വാക്യഘടനയും ഓരോന്നിനുമുള്ള കേസുകൾ നോക്കും. ഈ സെഷന്റെ അവസാനത്തോടെ, പിഎച്ച്പി ഇന്റർഫേസുകൾ എപ്പോൾ ഉപയോഗിക്കണമെന്നും അമൂർത്ത ക്ലാസുകൾ എപ്പോൾ ഉപയോഗിക്കണമെന്നും നിങ്ങളുടെ പ്രോഗ്രാമിംഗ് പ്രോജക്റ്റുകളിൽ അവ എങ്ങനെ പ്രയോഗിക്കാമെന്നും നിങ്ങൾക്കറിയാം.
OOP-യിലെ ഒരു ഇന്റർഫേസ് എന്താണ്?
- അമൂർത്തമായ രീതികൾ മാത്രം ഉൾക്കൊള്ളുന്ന ഒരു ക്ലാസാണ് ഇന്റർഫേസ്.
- ഇന്റർഫേസ് ക്ലാസ് ഉപയോഗിക്കുന്നതിലൂടെ, ഇന്റർഫേസ് വിപുലീകരിക്കുന്ന ഒരു ക്ലാസ് ഏത് രീതികളാണ് നടപ്പിലാക്കേണ്ടതെന്ന് നമുക്ക് വ്യക്തമാക്കാം.
- അബ്സ്ട്രാക്റ്റ് ക്ലാസിൽ നിന്ന് വ്യത്യസ്തമായി, നിങ്ങൾ രീതികൾ ഉപയോഗിച്ച് അമൂർത്തങ്ങൾ എഴുതേണ്ടതില്ല, കാരണം ഒരു ഇന്റർഫേസിന് അതിൽ അമൂർത്ത രീതികൾ മാത്രമേ ഉണ്ടാകൂ.
- ഇന്റർഫേസ് ഒരു ഇന്റർഫേസ് ക്ലാസ് പ്രഖ്യാപിക്കാൻ കീവേഡ് ഉപയോഗിക്കുന്നു. PHP-യിലെ ഒരു ഇന്റർഫേസ് ക്ലാസ്സിന്റെ ഇനിപ്പറയുന്ന വാക്യഘടന നോക്കുക.
<?php
interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function someMethod3() : string;
}
?>
അമൂർത്ത ക്ലാസുകളും ഇന്റർഫേസുകളും തികച്ചും സമാനമാണെങ്കിലും അവ യുക്തിപരമായി പരസ്പരം വ്യത്യസ്തമാണ്.
PHP-യിലെ ഇന്റർഫേസും അബ്സ്ട്രാക്റ്റ് ക്ലാസുകളും തമ്മിലുള്ള വ്യത്യാസം
ഇന്റർഫേസ് ക്ലാസ് | അമൂർത്ത ക്ലാസ് |
പ്രോപ്പർട്ടികൾ ഉൾക്കൊള്ളാൻ കഴിയില്ല | പ്രോപ്പർട്ടികൾ അടങ്ങിയിരിക്കാം |
എല്ലാ രീതികളും അമൂർത്തമാണ്, കൂടാതെ രീതികൾക്കൊപ്പം അമൂർത്തമായ കീവേഡും ആവശ്യമില്ല. | കോൺ അമൂർത്തവും അല്ലാത്തതുമായ രീതികൾ ഉൾക്കൊള്ളുന്നു. അമൂർത്ത രീതി പ്രഖ്യാപിക്കാൻ അബ്സ്ട്രാക്റ്റ് കീവേഡ് ആവശ്യമാണ്. |
ഒരു ക്ലാസിന് മറ്റൊരു ക്ലാസിൽ നിന്ന് പാരമ്പര്യമായി ഒരു ഇന്റർഫേസ് നടപ്പിലാക്കാൻ കഴിയും. ഒരു ചൈൽഡ് ക്ലാസിന് ഒരേ സമയം ഒരു ഇന്റർഫേസ് നടപ്പിലാക്കാൻ കഴിയുമെന്നാണ് ഇതിനർത്ഥം. | ഒരു ചൈൽഡ് ക്ലാസ് (മറ്റൊരു ക്ലാസിൽ നിന്ന് പാരമ്പര്യമായി ലഭിക്കുന്നത്), അമൂർത്ത ക്ലാസ് നടപ്പിലാക്കാൻ കഴിയില്ല. |
ആക്സസ് മോഡിഫയറുകളുമായി ബന്ധപ്പെട്ട് എല്ലാ രീതികളും പൊതുവായിരിക്കണം. | ആക്സസ് മോഡിഫയറുകളുമായി ബന്ധപ്പെട്ട് രീതികൾ പൊതുവായതോ പരിരക്ഷിതമോ ആകാം. |
PHP-യിലെ ഇന്റർഫേസിന്റെ ഉദാഹരണം
ഇന്റർഫേസ് PHP-യിൽ ഒരു ഇന്റർഫേസ് പ്രഖ്യാപിക്കാൻ കീവേഡ് ഉപയോഗിക്കുന്നു. PHP-യിലെ ഇന്റർഫേസിന്റെ ഇനിപ്പറയുന്ന നടപ്പാക്കൽ നോക്കുക.
<?php
interface Unit {
public function standard_unit();
}
class Weight implements Unit {
public function standard_unit() {
echo "Kg";
}
}
$weight= new Weight();
$weight->standard_unit();
?>
- മുകളിലെ ഉദാഹരണത്തിൽ. ഞങ്ങൾ ഒരു ഇന്റർഫേസ് ക്ലാസ് യൂണിറ്റ് സൃഷ്ടിക്കുന്നു, അതിൽ ഒരു രീതി standard_unit അടങ്ങിയിരിക്കുന്നു.
- തുടർന്ന് ഞങ്ങൾ മറ്റൊരു ക്ലാസ് സൃഷ്ടിക്കുന്നു ഭാരം അത് നടപ്പിലാക്കുന്നു ഘടകം ഇന്റർഫേസ്, അതിലെ standard_unit രീതി നിർവചിക്കുന്നു.
- മുകളിലെ ഉദാഹരണത്തിൽ നിന്ന്, ഇന്റർഫേസ് ഉപയോഗിക്കുന്ന ക്ലാസിന് അതിന്റെ രീതിയെ മറികടക്കാൻ കഴിയുമെന്നും അത് അതിന്റേതായ രീതിയിൽ ഉപയോഗിക്കാമെന്നും നമുക്ക് കാണാൻ കഴിയും. നമുക്ക് മറ്റൊരു ക്ലാസ് ദൈർഘ്യമുണ്ടെന്ന് പറയാം, അതിന് സ്റ്റാൻഡേർഡ്_യൂണിറ്റ് രീതി അതിന്റേതായ രീതിയിൽ ഉപയോഗിക്കാം.
- SI യൂണിറ്റുകളുള്ള എല്ലാ ഭൗതിക അളവുകൾക്കും പ്രവർത്തിക്കുന്ന ലോജിക് നമുക്ക് എഴുതാം. ഇനിപ്പറയുന്ന ഉദാഹരണം നോക്കുക.
<?php
// Interface definition
interface Unit {
public function standard_unit();
}
// Class definitions
class Weight implements Unit {
public function makeSound() {
echo " kg";
}
}
class Length implements Unit {
public function standard_unit() {
echo " meter";
}
}
class Temperature implements Unit {
public function standard_unit() {
echo " celcius";
}
}
// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);
// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
$quantitiy->standard_unit();
}
?>
- മുകളിലുള്ള ഉദാഹരണത്തിൽ, മുമ്പത്തെ ഉദാഹരണത്തിലെന്നപോലെ ഞങ്ങൾ സമാനമായ ക്ലാസുകൾ സൃഷ്ടിക്കുന്നു.
- ഭാരം, ദൈർഘ്യം, താപനില ക്ലാസുകൾ ഒരേ ഇന്റർഫേസ് നടപ്പിലാക്കുന്നു കൂടാതെ സ്റ്റാൻഡേർഡ്_യൂണിറ്റ് രീതി അതിന്റേതായ രീതിയിൽ ഉപയോഗിക്കാം. അതിനാൽ, ഞങ്ങൾ ഈ ക്ലാസുകളിലെ ഒബ്ജക്റ്റുകളുടെ ഒരു നിര ഉണ്ടാക്കുകയും അവയെ സ്റ്റാൻഡേർഡ്_യൂണിറ്റ് രീതിയിലേക്ക് ഓരോന്നായി ലൂപ്പ് ചെയ്യുകയും ചെയ്യുന്നു.