Heim > Datenbank > MySQL-Tutorial > Die tatsächliche Rolle von PHP-Schnittstellenklassen und abstrakten Klassen

Die tatsächliche Rolle von PHP-Schnittstellenklassen und abstrakten Klassen

黄舟
Freigeben: 2016-12-14 15:05:02
Original
1224 Leute haben es durchsucht

1.php-Schnittstellenklasse: Schnittstelle
Tatsächlich ist ihre Rolle sehr einfach. Wenn viele Leute gemeinsam ein Projekt entwickeln, werden sie möglicherweise alle einige von anderen geschriebene Klassen aufrufen ? Wie benenne ich die Implementierungsmethode einer bestimmten Funktion? Wenn wir eine Schnittstellenklasse definieren, müssen die darin enthaltenen Methoden implementiert werden, z. B.:

Kopieren Sie den Code wie folgt:
interface Shop
{
public function buy($gid);
public function sale($gid) ;
}

Ich deklariere eine Shop-Schnittstellenklasse und definiere drei Methoden: Kaufen, Verkaufen und Anzeigen. Dann müssen alle Unterklassen, die diese Klasse erben, sie implementieren. Keine dieser drei Methoden funktioniert. Wenn die Unterklasse dies tut Wenn Sie diese nicht umsetzen, wird es nicht funktionieren. Tatsächlich ist die Schnittstellenklasse, um es ganz klar auszudrücken, die Vorlage einer Klasse und die Vorschriften einer Klasse. Wenn Sie zu dieser Kategorie gehören, müssen Sie meine Vorschriften befolgen, egal wie Sie es tun Wie Sie es machen, liegt bei Ihnen. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:

Klasse BaseShop implementiert Shop
{
öffentliche Funktion buy($gid)
{
echo('Sie haben das Produkt mit der ID gekauft: '.$gid.');
}
public function sale($gid)
{
echo('Sie haben verkauft das Produkt mit der ID: „.$gid.“ .');
}
}

Denken Sie darüber nach: In einem großen Projekt, in dem viele Leute zusammenarbeiten, ist es sehr praktisch, eine Schnittstellenklasse zu haben, sodass Sie dies nicht tun müssen Fragen Sie andere, wie lautet der Methodenname Ihrer bestimmten Funktion? Wenn Ihnen das gefällt, kann ich natürlich nicht anders.
Schlussfolgerung: Die Schnittstellenklasse ist der Anführer einer Klasse und gibt die Richtung an, und die Unterklasse muss ihre angegebene Methode abschließen.
2.php Abstrakte Klasse: abstrakt
Tatsächlich sind abstrakte Klassen und Schnittstellenklassen teilweise ähnlich. Abstrakte Klassen haben ähnliche Teile entfernt. Tatsächlich sieht es sehr lustig aus sagt die Wahrheit über abstrakte Klassen: Wenn Sie feststellen, dass viele Ihrer Klassen viele Methoden verwenden, die Sie ständig schreiben, können Sie die Verwendung abstrakter Klassen in Betracht ziehen Ist es möglich, eine Klasse neu zu schreiben und für jede öffentliche Klasse eine öffentliche Klasse zu instanziieren und dieselbe Methode aufzurufen? Die Transformation macht es so bequem wie den direkten Aufruf der Methode dieser Klasse, und Sie können diese Methode auch überladen. Zum Beispiel:

Kopieren Sie den Code wie folgt:
abstract class BaseShop
{
public function buy($gid)

{

echo('Die von Ihnen gekaufte ID ist :' .$gid.'product');
}
public function sale($gid)
{
echo('Sie haben das Produkt mit der ID verkauft: '.$gid.') ;
}
public function view($gid)
{
echo('Sie haben das Produkt mit der ID angezeigt: '.$gid.');
}
Klasse BallShop erweitert BaseShop
{
var $itme_id = null;
public function __construct()
{
$this->itme_id = 2314;
public function open()
{
$this->sell($this->itme_id);
}
}

Hier ist ein Beispiel, ich denke genauso wie oben Definieren Sie eine Geschäftsklasse, extrahieren Sie alle ihre Teile, kaufen, verkaufen und anzeigen und implementieren Sie diese Methoden in der abstrakten Klasse. Anschließend erhalten die Unterklassen, die sie erben, diese Methoden automatisch. Mit diesen Methoden führt die Unterklasse ihre eigene einzigartige Sache aus die Duplizierung von Code und verbessert die Wiederverwendbarkeit.
Fazit: Eine abstrakte Klasse ist ein Dienstanbieter einer Klasse. Sie müssen sie nicht nutzen, wenn Sie mit der Bereitstellung von Diensten unzufrieden sind selbst.
Haha, das sind meine bescheidenen Meinungen zu PHP-Schnittstellenklassen und abstrakten Klassen. Ich hoffe, dass sie denjenigen helfen können, die über diese beiden verwirrt sind. Wenn Sie Kommentare haben, hinterlassen Sie bitte eine Nachricht Achtung auf die chinesische PHP-Website (m.sbmmt.com)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage