In der Regel verstehen die Abkürzung OOP die Schaffung und Nutzung von Klassen. Dabei Isolierung der Funktionen und Variablen. In mancher Hinsicht der OOP ist der Heilige Gral, wie es möglich ist, den Code mehrmals, und die Suche nach dem Heiligen Gral benutzen ist es, eine Umgruppierung der Code reduziert.Einer der Vorteile der OOP in der Möglichkeit einer Verlängerung der Klasse (verlängern).
class Dzivnieks {
public function barot() {
echo „ēd zāli”;
}
}
class Lauva extends Dzivnieks {
public function elpot() {
echo „elpo”;
}
}
Lauva Klasse erbt Funktion Barot () und erstellt eine neue elpot ()
Es kann einige Probleme:
1.In dem Fall, die Klasse von verschiedenen Programmierern erstellt wird, sollte sich strikt festlegen, wie die Namen der Funktionen gebildet werden und nach welchen Grundsätzen sie geschaffen werden. dh GetList fetchList oder ReadList.
2. Was sollte obligatorischen Funktionen sein.
3.Wie kann man vermeiden und was sollte in den Fällen gemacht werden, wenn immer wieder zur Verlängerung der Klasse nicht klar war, um es zu kochen Objekte Funktion ausgeführt?
Schnittstellen und abstrakte Klassen
Schnittstellen, wie es schlägt eine Reihe von Tools erstellen Sie eine Bindung mit oder zwischen den Objekten.Irrtum zu glauben, dass die Schnittstelle etwas für externe Verbindungen ist.
Im Prinzip Schnittstelle in PHP kann das tun werden als eine sehr abstrakte Klasse die, die Listen erforderlichen Verfahren, aber nicht fest, dass diese Verfahren sollten.Das Wesen der Schnittstelle, dass - wenn die Interface-Funktion angegeben wird, dann sollte es in den Klassenraum. Schnittstellen können kombiniert und erweitert werden.
Ein paar Beispiele:
#1.interface PageInterface { public function render(); }
#2a.class Login implements PageInterface { public function render() { return 'Render Login Page'; } }
#2b.class Register implements PageInterface { public function render() { return 'Render Register Page'; } }
#3.class PageCollection { private $pPage = array(); public function add(PageInterface $pPage) { $this->m_aPageCollection[] = $pPage; } public function renderPages() { foreach ($this->m_aPageCollection as $pPage) { echo $pPage->render(); } } }
#4.$pPageCollection = new PageCollection(); $pPageCollection->add(new Login()); $pPageCollection->add(new Register()); $pPageCollection->renderPages();
Kombination von Schnittstellen:
#5.
interface AdminPageInterface
{
public function auth();
}
class AdminNews implements PageInterface, AdminPageInterface
{
public function auth()
{
echo "Auth Code";
}
public function render()
{
echo "Render Code";
}
}
Alle Klassen, die Nutzung der Schnittstelle PageInterface übersprungen sollte eine Funktion render()
Abstrakte Klassen für viele vielseitig. Sie arbeiten ähnlich wie die Schnittstellen, aber sie können Teil des Codes verschrieben werden.
Natürlich clevere Programmierer könnte argumentieren, dass die Schnittstellen und abstrakte Klassen anders funktionieren. Ich hoffe, dieser Artikel hat zumindest einige Klarheit hergestellt
http://www.killerphp.com/articles/php-interfaces/
http://www.talkphp.com/advanced-php-programming/1446-working-interfaces.html