我們在通過學習VideoCard.php 接口文件(顯卡的功能接口定義)
- <?php
- interface VideoCardInter{
- function Display();
- function getName();
- }
- ?>
Dmeng.php 實現接口(帝盟的廠家實現了這些接口,怎麼實現的,主板廠家不用管)
- <?php
- include_once("VideoCard.php");
- class Dmeng implements VideoCardInter {
- function Display(){
- echo "Display";
- }
- function getName(){
- return "Dmeng VideoCard";
- }
- }
- ?>
Mainboard.php 應用接口(把顯卡插到主板上,主板只要用這些接口就行了,也可以不用)
- <?php
- include_once("VideoCard.php");
- include_once("Dmeng.php");
- class Mainboard{
- var $vc;
- function run(VideoCardInter $vc){ //定義VideoCardInter接口類型參數,這時並不知道是誰來實現。
- $this->vc=$vc;
- $this->vc->Display();
- echo "主板運行!";
- }
- }
- $conputer=new Mainboard();
- $conputer->run(new Dmeng); //用的時候把實現接口類的名稱寫進來,
(現在是帝盟的顯卡,也可以換成別的場家的,只要他們都實現了接口)- ?>
由於PHP是動態語言,所以類型不能像JAVA一樣定的很死,定義接口的時候,寫上返回類型反而出錯,估計PHP6的時候可能寫義的要嚴格一些吧。
PS:我只把PHP接口特性最基本的部分寫上,還可以加CPU等接口。