> 백엔드 개발 > PHP 튜토리얼 > PHP 디자인 패턴 팩토리 메소드

PHP 디자인 패턴 팩토리 메소드

不言
풀어 주다: 2023-03-24 09:50:02
원래의
1622명이 탐색했습니다.

이 글의 내용은 PHP 디자인 패턴의 팩토리 메소드에 대한 내용입니다. 이는 특정 참조 가치가 있습니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

오늘은 팩토리 메소드(FactoryMethod)를 배우는 데 집중했습니다. ) 이 디자인 패턴은 다음과 같습니다. 나의 학습 경험과 경험을 기록해 보세요.

Factory 메소드는 23가지 패턴 중 생성 패턴 중 하나입니다. 이전에 간단한 Factory에 대해 어느 정도 이해하고 있었기 때문입니다. 팩토리 메소드는 단순한 팩토리의 진화입니다. 클라이언트와 상호 작용하는 클래스는 여러 개의 서로 다른 클래스를 생성해야 하며 이는 매우 피곤한 프로세스입니다. 상호 작용 클래스는 수평 확장을 용이하게 하기 위해 각 클래스를 독립적으로 생성할 수 있도록 분할됩니다.

게임 캐릭터 생성을 예로 들어보세요:

<?php    
   
    
/** Hero  
 *  英雄接口  
 */    
interface Hero  
{  
    function Create();   
}  
  
/** GuanYu 关羽  
 *  具体英雄类  
 */   
Class GuanYu implements Hero  
{   
    function Create()  
    {  
       echo "关羽加入战场。。。<br/>";  
    }  
}  
  
/** ZhangFei 张飞 
 *  具体英雄类  
 */   
Class ZhangFei implements Hero  
{  
    function Create()  
    {  
       echo "张飞加入战场。。。<br/>";  
    }   
}  
  
  
/** FactoryMethod  
 *  工厂方法接口  
 */  
interface FactoryMethod  
{  
    function CreateHero();  
}  
  
/** GuanYuFactory  
 *  关羽工厂类   
 */  
Class GuanYuFactory implements FactoryMethod  
{  
    function CreateHero()  
    {  
        return new GuanYu();  
    }   
}  
  
/** ZhangFeiFactory  
 *  张飞工厂类  
 */  
Class ZhangFeiFactory implements FactoryMethod  
{  
    function CreateHero()  
    {  
        return new ZhangFei();  
    }   
}
로그인 후 복사
<?php  
// 工厂方式 客户端 index.php  
header("Content-Type:text/html;charset=utf-8");  
  
require_once "FactoryMethod.php";  
  
// 各自调用各自的工厂方法进行创建  
$GYF = new GuanyuFactory();  
$ZFF = new ZhangFeiFactory();  
  
// 调用各自工厂方法的创建英雄方法  
$GuanYu = $GYF->CreateHero();  
$ZhangFei = $ZFF->CreateHero();  
  
// 调用各自创建英雄方法  
$GuanYu->Create();  
$ZhangFei->Create();
로그인 후 복사

관련 권장 사항:

PHP Design Pattern Simple Factory



위 내용은 PHP 디자인 패턴 팩토리 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿