從零開始學設計模式(5):多態

Introductionphp

和C/C++,Java,Python等語言同樣,PHP也支持多態。多態更可能是是一種面向對象程序設計的概念,讓同一類對象執行同一個接口,但卻實現不一樣的邏輯功能。編程

多態/Polymorphism函數

仍是用動物、鯨魚和鯉魚來舉例:設計

 

interfaceIEat{對象

functioneatFish();接口

functioneatMoss();get

}it

classWhaleimplementsIEat{io

publicfunctioneatFish(){function

echo"Whale eats fish.\n";

}

publicfunctioneatMoss(){

echo"Whale doesn't eat fish\n";

}

}

classCarpimplementsIEat{

publicfunctioneatFish(){

echo"Carp doesn't eat moss.\n";

}

publicfunctioneatMoss(){

echo"Carp eats moss.\n";

}

}

$whale=newWhale();

$whale->eatFish();

$whale->eatMoss();

$carp=newCarp();

$carp->eatFish();

$carp->eatMoss();

?>

運行一下:

$ phpInheritance.php

Whaleeats fish.

Whaledoesn't eat fish.

Carp eats moss.

Carp doesn't eat moss.

注意PHP的函數定義不包含返回值,所以徹底能夠給不一樣的接口實現返回不一樣類型的數據。這一點和C/C++,Java等語言是不一樣的。此外,返回不一樣類型的數據,甚至不返回結果,對程序設計來講,會額外增長維護成本,已經和使用接口的初衷不一樣了(接口爲了封裝實現,而不一樣的返回值事實上是須要調用者去理解實現的)。

Summary

合理利用多態對接口進行不一樣的實現,簡化你的編程模型,讓代碼易於維護。

 

若是你以爲眼前須要更好的提升你能夠來千鋒學PHP,國內排名第一的PHP機構。

相關文章
相關標籤/搜索