원래 주소: PHP 디자인 패턴(5): 다형성 소개 PHP 디자인 패턴(4)에서 소개했습니다. 상속 상속은 확장을 사용한 프로그래밍 방법. PHP 디자인 패턴(2): 추상 클래스와 인터페이스에서 인터페이스를 소개했습니다. 실제로 인터페이스를 사용하는 프로그래밍 방법, 즉 다형성도 있습니다. C/C, Java, Python 및 기타 언어와 마찬가지로"/> 원래 주소: PHP 디자인 패턴(5): 다형성 소개 PHP 디자인 패턴(4)에서 소개했습니다. 상속 상속은 확장을 사용한 프로그래밍 방법. PHP 디자인 패턴(2): 추상 클래스와 인터페이스에서 인터페이스를 소개했습니다. 실제로 인터페이스를 사용하는 프로그래밍 방법, 즉 다형성도 있습니다. C/C, Java, Python 및 기타 언어와 마찬가지로">

>백엔드 개발 >PHP 튜토리얼 >PHP 디자인 패턴 5: 다형성

PHP 디자인 패턴 5: 다형성

WBOY
WBOY원래의
2016-07-29 08:51:091034검색

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

원본 주소: PHP 디자인 패턴(5): 다형성

소개

PHP에서 디자인 패턴(4): 상속에서는 상속과 프로그래밍을 위해 확장을 사용하는 방법을 소개했습니다.
PHP 디자인 패턴(2): 추상 클래스와 인터페이스에서 인터페이스를 소개했는데, 실제로 다형성인 인터페이스를 사용하는 프로그래밍 방법도 있습니다.
C/C, Java, Python 및 기타 언어와 마찬가지로 PHP도 다형성을 지원합니다. 다형성은 객체 지향 프로그래밍 개념에 더 가깝습니다. 즉, 동일한 유형의 객체가 동일한 인터페이스를 실행하지만 서로 다른 논리 기능을 구현할 수 있도록 합니다.

다형성/다형성

동물, 고래, 잉어를 예로 들어 보겠습니다.

<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 및 기타 언어와 다릅니다. 또한, 다른 유형의 데이터를 반환하거나 결과가 전혀 반환되지 않으면 프로그래밍에 대한 유지 관리 비용이 증가합니다. 이는 인터페이스를 사용하는 원래 의도와 다릅니다(인터페이스는 구현을 캡슐화하도록 설계되었으며 다른 반환 값은 실제로 호출자가 다음을 수행해야 함). 구현을 이해하기 위해).

요약

다형성을 사용하여 다양한 인터페이스를 구현하고 프로그래밍 모델을 단순화하며 코드를 더 쉽게 유지 관리할 수 있습니다.

위에서는 PHP 디자인 패턴 5인 다형성을 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.