OOP Interface
Help pls. Átolvastam 2 könyvet, php manuált nézegettem, de ennek az interfacenek nem látom a lényegét. Ha valaki eltudná magyarázni, és példával illusztrálni, hogy hogyan megköszönném.
Nézegettem néhány példát. Íme:De ahogy néztem ez tökéletesen működik ígyis:
■ Nézegettem néhány példát. Íme:
- <?php
- interface water
- {
- public function makeItWet();
- }
- abstract class weather implements water
- {
- private $cloudy;
- public function makeItWet(){}
- abstract public function start();
- abstract public function getCloudy();
- abstract public function setCloudy();
- }
- class rain extends weather
- {
- private $cloudy;
- public function start()
- {
- return "Here's some weather. ";
- }
- public function makeItWet()
- {
- return 'it is raining cats and dogs today.';
- }
- public function getCloudy()
- {
- return $this->cloudy;
- }
- public function setCloudy($bln=false)
- {
- $this->cloudy = $bln;
- }
- }
- $a = new rain();
- echo $a->start();
- $a->setCloudy(true);
- if ($a->getCloudy()) {
- echo 'It is a cloudy day and ';
- }
- echo $a->makeItWet();
- ?>
- <?php
- class rain
- {
- private $cloudy;
- public function start()
- {
- return "Here's some weather. ";
- }
- public function makeItWet()
- {
- return 'it is raining cats and dogs today.';
- }
- public function getCloudy()
- {
- return $this->cloudy;
- }
- public function setCloudy($bln=false)
- {
- $this->cloudy = $bln;
- }
- }
- $a = new rain();
- echo $a->start();
- $a->setCloudy(true);
- if ($a->getCloudy()) {
- echo 'It is a cloudy day and ';
- }
- echo $a->makeItWet();
- ?>
Interface
Természetesen érvelhetnél úgy, hogy Te írod a kódot, nem felejted el, de a gyakorlat egyrészt azt mutatja, hogy hasznos, mert nem kell annyi mindenre figyelni, másrészt a modern fejlesztőkörnyezetekben (NetBeans, Eclipse, stb) ilyenkor kapsz kódkiegészítést, tehát nem kell ismerned fejből az összes függvényt, amit az interface nyújt.