PHP 設計パターン 4: 継承 PHP ショッピング カートの設計 PHP セキュリティ モード PHP 設計レポート

WBOY
リリース: 2016-07-29 08:52:23
オリジナル
1115 人が閲覧しました

data-id="1190000004994154" data-licence="">

元のアドレス: PHP デザイン パターン (4): PHP デザイン パターンの継承

入門

(2): 抽象クラスとインターフェイス、および PHP デザイン パターン ( 3): カプセル化では、継承、つまり extends キーワードをすでに見てきました。
C/C++、Java、Python、その他の言語と同様に、PHP も継承をサポートしており、他の言語と何ら変わりはありません。

継承

例として動物、クジラ、コイを使用してみましょう:

<code><?php
abstract class Animal {
  protected $name;

  protected function chew($food) {
    echo $this->name . " is chewing " . $food . ".\n";
  }
  protected function digest($food) {
    echo $this->name . " is digesting " . $food . ".\n";
  }
}

class Whale extends Animal {
  public function __construct() {
    $this->name = "Whale";
  }
  public function eat($food) {
    $this->chew($food);
    $this->digest($food);
  }
}

class Carp extends Animal {
  public function __construct() {
    $this->name = "Carp";
  }
  public function eat($food) {
    $this->chew($food);
    $this->digest($food);
  }
}

$whale = new Whale();
$whale->eat("fish");
$carp = new Carp();
$carp->eat("moss");
?></code>
ログイン後にコピー

実行してみましょう:

<code>$ php Inheritance.php
Whale is chewing fish.
Whale is digesting fish.
Carp is chewing moss.
Carp is digesting moss.</code>
ログイン後にコピー

Animal クラス、Whale クラス、Carp クラスでの $this の使用法に注意してください。
上記のコードはありふれたものに見えますが、実は謎が含まれています。優れたプログラム設計には、次のことが必要です:

  1. クラス間の結合が低い必要があります。

  2. 継承は通常、具象クラスではなく抽象クラスから継承します。

  3. 通常、抽象クラスを直接継承する具象クラスは階層が1つだけで、抽象クラス内でprotectedで修飾されています。

概要

適切なプログラミングには、抽象と保護を組み合わせることで、明確な構造のコードを作成することもできます。

上記では、PHP のデザイン パターン 4: 継承について、デザイン パターンと PHP の内容を含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート