원래 주소: PHP 디자인 패턴(5): 다형성 소개 PHP 디자인 패턴(4)에서 소개했습니다. 상속 상속은 확장을 사용한 프로그래밍 방법. PHP 디자인 패턴(2): 추상 클래스와 인터페이스에서 인터페이스를 소개했습니다. 실제로 인터페이스를 사용하는 프로그래밍 방법, 즉 다형성도 있습니다. C/C, Java, Python 및 기타 언어와 마찬가지로"/> 원래 주소: PHP 디자인 패턴(5): 다형성 소개 PHP 디자인 패턴(4)에서 소개했습니다. 상속 상속은 확장을 사용한 프로그래밍 방법. PHP 디자인 패턴(2): 추상 클래스와 인터페이스에서 인터페이스를 소개했습니다. 실제로 인터페이스를 사용하는 프로그래밍 방법, 즉 다형성도 있습니다. C/C, Java, Python 및 기타 언어와 마찬가지로">
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.