工厂设计模式PHP实现代码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

<?php
    //人类接口
    interface IHuman
    {
      
        function GetName();
      
    }
      
    //男人类,实现人类接口
    class ManClass implements IHuman
    {
        //获取姓名方法
        public function GetName()
        {
            return "I'm man."."<br>";
              
        }
              
    }
      
    //女人类,实现人类接口
    class WomanClass implements IHuman
    {
        //获取姓名方法
        public function GetName()
        {
            return "I'm Woman."."<br>";
              
        }
              
    }
      
    //类工厂,根据需要生产不同实例对象返回
    class ManFactory
    {
        //根据参数获取实例对象
        public function GetIHuman($IHuman="man")
        {
            if($IHuman=="woman")
            {
                return new WomanClass();
            }
            else if($IHuman=="man")
            {
                return new ManClass();
            }
            else
            {
                return null;
            }
      
        }
        //直接获取woman类
        public function GetWoman()
        {
            return new WomanClass();
            //return new ManClass();
        }
        //直接获取man类
        public function  GetMan()
        {
      
            return new ManClass();
        }
    }
  
    $ManFactory=new ManFactory();
      
    $ManClass=$ManFactory->GetIHuman();
      
    echo $ManClass->GetName();
      
    $IHuman=$ManFactory->GetIHuman("woman");
      
    echo $IHuman->GetName();
      
    $Woman=$ManFactory->GetWoman();
      
    echo $Woman->GetName();
      
    $Man=$ManFactory->GetMan();
      
    echo $Man->GetName();
  
?>