首頁 > 後端開發 > php教程 > PHP設計模式五:多型

PHP設計模式五:多型

WBOY
發布: 2016-07-29 08:51:09
原創
1041 人瀏覽過

data-id="1190000005068760" data-license="cc">

原文位址:PHP設計模式(五):多態性

Introduction

在PHP設計模式(利用extends來進行程式設計的方法。
在PHP設計模式(二):抽象類別和介面中我們介紹了接口,事實上也存在利用interface的程式設計方法,那就是多態。
和C/C++,Java,Python等語言一樣,PHP也支援多型。多態更多是一種物件導向程式設計的概念,讓同一類別物件執行同一個接口,但卻實現不同的邏輯功能。

多態性/Polymorphism

還是用動物、鯨魚和鯉魚來舉例:

<code><?php
interface IEat {
  function eatFish();
  function eatMoss();
}

class Whale implements IEat {
  public function eatFish() {
    echo "Whale eats fish.\n";
  }
  public function eatMoss() {
    echo "Whale doesn't eat fish\n";
  }
}

class Carp implements IEat {
  public function eatFish() {
    echo "Carp doesn't eat moss.\n";
  }
  public function eatMoss() {
    echo "Carp eats moss.\n";
  }
}

$whale = new Whale();
$whale->eatFish();
$whale->eatMoss();
$carp = new Carp();
$carp->eatFish();
$carp->eatMoss();
?></code>
登入後複製

運行一下:

<code>$ php Inheritance.php
Whale eats fish.
Whale doesn't eat fish.
Carp eats moss.
Carp doesn't eat moss.</code>
登入後複製

注意PHP的函數定義不包含回傳值,因此傳回不同類型的資料介面實作不同類型的資料介面實作。這一點和C/C++,Java等語言是不同的。此外,傳回不同類型的數據,甚至不回傳結果,對程式設計來說,會額外增加維護成本,已經和使用介面的初衷不同了(介面為了封裝實現,而不同的回傳值事實上是需要呼叫者去理解實現的)。

Summary

合理利用多態對介面進行不同的實現,簡化你的程式設計模型,讓程式碼易於維護。

以上就介紹了PHP設計模式五:多態,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板