Jazyk PHP - pokračování
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Třída, která má alespoň jednu abstraktní metodu
je také abstraktní
je také abstraktn
Hodí se tehdy, když chci skoro všechno udělat za
Hodí se tehdy, když chci skoro všechno udělat za
koncového uživatele, jenom nějakou maličkost
koncového uživatele, jenom nějakou maličkost
koncového uživatele, jenom nějakou maličkos
koncového uživatele, jenom nějakou maličko
nechat na něm.
nechat na něm
Abstraktní metody a třídy
Abstraktní metody a tříd
Například udělám nákupní košík, který bude umět
Například udělám nákupní košík, který bude umět
skoro vše, ale bude nezávislý na použité DB.
skoro vše, ale bude nezávislý na použité DB
Generic
Generi Cart
Car
– add
ad
– remove
remov
– abstract
abstrac save
sav
– abstract
abstrac sa
s
– abstract
abstrac load
loa
Definice abstraktní třídy
Definice abstraktní tříd
abstract class AbstractCart {
protected $obsah = array();
public function add ($zbozi) {
$this->obsah[] = $zbozi;
}
public function remove ($zbozi) {
foreach ($this->obsah as $klic => $polozka) {
foreach ($this->obsah as $klic => $polozka)
if ($polozka == $zbozi) unset($this->zboz[$klic]);
}
}
public abstract function load();
public abstract function save();
}
Implementace abstraktní třídy
Implementace abstraktní tříd
class FileCart extends AbstractCart {
public function load(){
$file = fopen("kosik.txt","r");
$this->obsah =
array();
while ($radek = fgets($file)) {
$this->obsah[] = $radek;
}
fclose($file);
}
public function save() {
$file = fopen("kosik.txt","w");
foreach ($this->obsah as $polozka) {
fputs($file, $polozka."\r\n");
}
fclose($file);
}
}
Použití
Použit
$kosik0 =
new AbstractCart(); // toto nelze!!! chyba
$kosik =
new FileCart();
$kosik->add("Brambory");
$kosik->add("Jablka");
$kosik->save();
$kosik2 =
new FileCart();
$kosik2->load();
var_dump($kosik2);
kuk abstract_cart.php
Interfaces
Interface
Řekněme, že máme 2 zcela různé typy zboží
Řekněme, že máme 2 zcela různé typy zbož