• php设计模式之工厂模式


    目录:

     Factory.php

    <?php 
    
    /**
     * 工厂类
     */
    class Factory{
       
       /**
        * 输出食物类
        */
        public static function Food(){
       	 $Food =  new Food();
       	 return $Food;
       }
    
       /**
        * 输出运动类
        */
        public static function Campaign(){
       	$Campaign =  new Campaign();
       	return $Campaign;
       }
    
       /**
        * 调料类
        */
        public static function Resource(){
       	$Resource =  new Resource();
       	return $Resource;
       }
    
       /**
        * 工具类
        */
        public static function Tool(){
        $Tool =  new Tool();
        return $Tool;
       }
    
       /**
        * 资源类
        */
        public static function Seasoning(){
        $Seasoning =  new Seasoning();
        return $Seasoning;
       }
    
    }
    

     campaign.php

    <?php 
    
    /**
     * 运动类
     */
     class campaign {
        static function treadmill(){
        	echo "这是跑步机";
        }
        static function bicycle(){
        	echo "这是自行车";
        }
        static function carry(){
        	echo "这里需要搬东西";
        }
        static function cleanup(){
        	echo "这里需要打扫";
        }
        static function washup(){
        	echo "这里需要洗餐具";
        }
        static function walk(){
        	echo "这是散步";
        }
        static function trot(){
        	echo "这是小跑";
        }
     }
    

     food.php

    <?php 
    
    /**
     * 食物类
     */
    class food {
    	static function shallot(){
    		return "这里有葱";
    	}
    
    	static function ginger(){
    		return "这里有姜";
    	}
    
    	static function garlic(){
    		return "这里有蒜";
    	}
    
    	static function soybeanoil(){
    		return "这里有大豆食用油";
    	}
    
    	static function potato(){
    		return "这里有土豆";
    	}
    
    	static function egg(){
    		return "这里有鸡蛋";
    	}
    
    	static function chicken_breast(){
    		return "这里有鸡胸肉"; 
    	}
    
    	static function wheatmeal(){
    		return "这里有小麦粉"; 
    	}
    
    	static function sweet_potato_starch(){
    		return "这里有红薯淀粉"; 
    	}
    
    	static function rice(){
    		return "这里有大米"; 
    	}
    
    	static function millet(){
    		return "这里有小米"; 
    	}
    
    	static function sweet_potato(){
    		return "这里有红薯"; 
    	}
    
    	static function steamed_bun(){
    		return "这里有馒头"; 
    	}
    
    	static function brinjaul(){
    		return "这里有茄子"; 
    	}
    
    	static function bean_curd_stick(){
    		return "这里有腐竹"; 
    	}
    
    	static function agaric(){
    		return "这里有木耳"; 
    	}
    
    	static function pork(){
    		return "这里有猪肉"; 
    	}
    
    }
    

     resource.php

    <?php 
    
    /**
     * 资源类
     */
    class resource {
    	public static function water(){
    		return "这里有水";
    	}
    
        public static function electricity(){
    		return "这里有电";
    	}
    
    }
    

     seasoning.php

    <?php 
    
    /**
     * 调料类
     */
    class seasoning {
    	static function aginomoto(){
    		return "这里有味精";
    	}
    
    	static function chicken_extract(){
    		return "这里有鸡精";
    	}
    
    	static function salt(){
    		return "这里有盐";
    	}
    
    	static function cleap_seasoning_packets(){
    		return "这里有廉价调料包";
    	}
    
    	static function saccharose(){
    		return "这里有蔗糖";
    	}
    
    	static function chili_powder(){
    		return "这里有辣椒面";
    	}
    
    	static function light_soy_sauce(){
    		return "这里有生抽"; 
    	}
    
    	static function dark_soy_sauce(){
    		return "这里有老抽"; 
    	}
    
    	static function cooking_wine(){
    		return "这里有料酒"; 
    	}
    
    	static function vinegar(){
    		return "这里有醋"; 
    	}
    
    	static function white_vinegar(){
    		return "这里有白醋"; 
    	}
    
    }
    

     tool.php

    <?php 
    
    /**
     * 工具类
     */
    class tool {
    	static function induction_cooker(){
    		return "这里有电磁炉";
    	}
    
    	static function pot(){
    		return "这里有锅";
    	}
    
    	static function pot_cover(){
    		return "这里有锅盖";
    	}
    
    	static function cooking_shovel (){
    		return "这里有炒菜的铲子";
    	}
    
    	static function rice_bowl(){
    		return "这里有饭碗";
    	}
    
    	static function plate(){
    		return "这里有盘子";
    	}
    
    	static function chopsticks(){
    		return "这里有筷子"; 
    	}
    
    	static function apoon(){
    		return "这里有勺子"; 
    	}
    
    	static function kitchen_knife(){
    		return "这里有菜刀";
    	}
    
    	static function fruit_knife(){
    		return "这里有水果刀"; 
    	}
    
    	static function chopping_board(){
    		return "这里有案板"; 
    	}
    
    }
    

     use.php

    <?php 
    
    /**
     * 使用类,业务代码
     */
    
    spl_autoload_register('loading');
    
    
    function loading($class){
    	$dir = __DIR__;
    	$requireFile = $dir.'\'.$class.".php";
    	require $requireFile;
    }
    
    /**
     * 爱丽丝做饭
     * @return [type] [description]
     */
    function aliceDoTheCooking()
    {   
    
    	/**
    	 * 食物对象变量
    	 * @var [type]
    	 */
    	$food = Factory::Food();
    
    	//葱
        $shallot = $food->shallot();
        //姜
        $ginger = $food->ginger();
        //蒜
        $garlic = $food->garlic();
        //大豆油
        $soybeanoil = $food->soybeanoil();
        //土豆
        $potato = $food->potato();
        //鸡蛋
        $egg = $food->egg();
        //鸡胸肉
        $chicken_breast = $food->chicken_breast();
        //小麦面粉
        $wheatmeal = $food->wheatmeal();
        //红薯淀粉
        $sweet_potato_starch = $food->sweet_potato_starch();
        //大米
        $rice = $food->rice();
        //小米
        $millet = $food->millet();
        //红薯
        $sweet_potato = $food->sweet_potato();
        //馒头
        $steamed_bun = $food->steamed_bun();
        //茄子
        $brinjaul = $food->brinjaul();
        //腐竹
        $bean_curd_stick = $food->bean_curd_stick();
        //木耳
        $agaric = $food->agaric();
        //猪肉
        $pork = $food->pork();
    
        /**
         * 调料对象变量
         * @var [type]
         */
        $seasoning = Factory::Seasoning();
        //味精
        $aginomoto = $seasoning->aginomoto();
        //鸡精
        $chicken_extract = $seasoning->chicken_extract();
        //盐
        $salt = $seasoning->salt();
        //廉价调料包
        $cleap_seasoning_packets = $seasoning->cleap_seasoning_packets();
        //蔗糖
        $saccharose = $seasoning->saccharose();
        //辣椒面
        $chili_powder = $seasoning->chili_powder();
        //生抽
        $light_soy_sauce = $seasoning->light_soy_sauce();
        //老抽
        $dark_soy_sauce = $seasoning->dark_soy_sauce();
        //料酒
        $cooking_wine = $seasoning->cooking_wine();
        //醋
        $vinegar = $seasoning->vinegar();
        //白醋
        $white_vinegar = $seasoning->white_vinegar();
        
        /**
         * 资源对象变量
         * @var [type]
         */
        $resource = Factory::Resource();
        //水
        $water = $resource->water();
        //电
        $electricity = $resource->electricity();
        
        /**
         * 工具对象变量
         * @var [type]
         */
        $tool = Factory::Tool();
        //电磁炉
        $induction_cooker = $tool->induction_cooker();
        //锅
        $pot = $tool->pot();
        //锅盖
        $pot_cover = $tool->pot_cover();
        //铲子
        $cooking_shovel = $tool->cooking_shovel();
        //饭碗
        $rice_bowl = $tool->rice_bowl();
        //盘子
        $plate = $tool->plate();
        //筷子
        $chopsticks = $tool->chopsticks();
        //勺子
        $apoon = $tool->apoon();
        //菜刀
        $kitchen_knife = $tool->kitchen_knife();
        //水果刀
        $fruit_knife = $tool->fruit_knife();
        //案板
        $chopping_board = $tool->chopping_board();
        
        //食材判断
    	if(empty($shallot) || empty($ginger) || empty($garlic) || empty($soybeanoil) || empty($potato) || empty($egg) || empty($pork) || empty($rice)){
    		echo "蛋炒饭需要用到的食材有葱,姜,蒜,大豆油,土豆,鸡蛋,猪肉,大米。食材不足不能做蛋炒饭";
    		exit(0);
    	}
    	//调料判断
    	if(empty($aginomoto) || empty($chicken_extract) || empty($salt) || empty($cleap_seasoning_packets)){
    		echo "蛋炒饭需要用到的调料有味精,鸡精,盐,廉价调料包。调料不足不能做蛋炒饭";
    		exit(0);
    	}
    	//工具判断
    	if(empty($induction_cooker) || empty($pot) || empty($pot_cover) || empty($cooking_shovel) || empty($rice_bowl) || empty($plate) || empty($chopsticks) || empty($kitchen_knife) || empty($chopping_board)){
    		echo "蛋炒饭需要用到的工具有电磁炉,锅,锅盖,铲子,饭碗,盘子,筷子,菜刀,案板。工具不足不能做蛋炒饭";
    		exit(0);
    	}
    	//资源判断
    	if(empty($water) || empty($electricity)){
    		echo "蛋炒饭需要用到的资源有水,电。资源不足不能做蛋炒饭";
    		exit(0);
    	}
    
    	echo "<br/>";
    
    	echo "先用菜刀在案板上把用水洗过多次的土豆切丝,在有电的情况下插上电磁炉打开大火热锅,锅中倒油,热油后加入切好的猪肉粒,1分钟后加入水洗过切好的葱姜蒜爆炒,倒入土豆丝炒熟,加入少量大豆油,把蒸熟放凉的大米适量放入锅中用铲子压扁压碎并不停中火翻炒,然如盐,味精,鸡精,廉价调料包,搅拌后转小火。把鸡蛋打入碗中加入盐,和调料用筷子搅拌均匀,开大火加入少量豆油,把鸡蛋倒入锅中使之与大米混合,翻炒加入少量引用水翻炒,水将要蒸干时转小火盖上锅盖2分钟后关掉电磁炉装盘配上筷子等待使用";
    }
    
    aliceDoTheCooking();
    

     user.php文件也可以这样

    <?php 
    
    /**
     * 使用类,业务代码
     */
    
    spl_autoload_register('loading');
    
    
    function loading($class){
    	$dir = __DIR__;
    	$requireFile = $dir.'\'.$class.".php";
    	require $requireFile;
    }
    
    /**
     * 爱丽丝做饭
     * @return [type] [description]
     */
    function aliceDoTheCooking()
    {   
    
    	/**
    	 * 食物对象变量
    	 * @var [type]
    	 */
    	$food = Factory::Food();
    
    	//葱
        $shallot = $food::shallot();
        //姜
        $ginger = $food->ginger();
        //蒜
        $garlic = $food::garlic();
        //大豆油
        $soybeanoil = $food->soybeanoil();
        //土豆
        $potato = $food::potato();
        //鸡蛋
        $egg = $food->egg();
        //鸡胸肉
        $chicken_breast = $food::chicken_breast();
        //小麦面粉
        $wheatmeal = $food->wheatmeal();
        //红薯淀粉
        $sweet_potato_starch = $food::sweet_potato_starch();
        //大米
        $rice = $food->rice();
        //小米
        $millet = $food::millet();
        //红薯
        $sweet_potato = $food->sweet_potato();
        //馒头
        $steamed_bun = $food::steamed_bun();
        //茄子
        $brinjaul = $food->brinjaul();
        //腐竹
        $bean_curd_stick = $food::bean_curd_stick();
        //木耳
        $agaric = $food->agaric();
        //猪肉
        $pork = $food::pork();
    
        /**
         * 调料对象变量
         * @var [type]
         */
        $seasoning = Factory::Seasoning();
        //味精
        $aginomoto = $seasoning::aginomoto();
        //鸡精
        $chicken_extract = $seasoning->chicken_extract();
        //盐
        $salt = $seasoning::salt();
        //廉价调料包
        $cleap_seasoning_packets = $seasoning->cleap_seasoning_packets();
        //蔗糖
        $saccharose = $seasoning::saccharose();
        //辣椒面
        $chili_powder = $seasoning->chili_powder();
        //生抽
        $light_soy_sauce = $seasoning::light_soy_sauce();
        //老抽
        $dark_soy_sauce = $seasoning->dark_soy_sauce();
        //料酒
        $cooking_wine = $seasoning::cooking_wine();
        //醋
        $vinegar = $seasoning->vinegar();
        //白醋
        $white_vinegar = $seasoning::white_vinegar();
        
        /**
         * 资源对象变量
         * @var [type]
         */
        $resource = Factory::Resource();
        //水
        $water = $resource->water();
        //电
        $electricity = $resource::electricity();
        
        /**
         * 工具对象变量
         * @var [type]
         */
        $tool = Factory::Tool();
        //电磁炉
        $induction_cooker = $tool->induction_cooker();
        //锅
        $pot = $tool::pot();
        //锅盖
        $pot_cover = $tool->pot_cover();
        //铲子
        $cooking_shovel = $tool::cooking_shovel();
        //饭碗
        $rice_bowl = $tool->rice_bowl();
        //盘子
        $plate = $tool::plate();
        //筷子
        $chopsticks = $tool->chopsticks();
        //勺子
        $apoon = $tool::apoon();
        //菜刀
        $kitchen_knife = $tool->kitchen_knife();
        //水果刀
        $fruit_knife = $tool::fruit_knife();
        //案板
        $chopping_board = $tool->chopping_board();
        
        //食材判断
    	if(empty($shallot) || empty($ginger) || empty($garlic) || empty($soybeanoil) || empty($potato) || empty($egg) || empty($pork) || empty($rice)){
    		echo "蛋炒饭需要用到的食材有葱,姜,蒜,大豆油,土豆,鸡蛋,猪肉,大米。食材不足不能做蛋炒饭";
    		exit(0);
    	}
    	//调料判断
    	if(empty($aginomoto) || empty($chicken_extract) || empty($salt) || empty($cleap_seasoning_packets)){
    		echo "蛋炒饭需要用到的调料有味精,鸡精,盐,廉价调料包。调料不足不能做蛋炒饭";
    		exit(0);
    	}
    	//工具判断
    	if(empty($induction_cooker) || empty($pot) || empty($pot_cover) || empty($cooking_shovel) || empty($rice_bowl) || empty($plate) || empty($chopsticks) || empty($kitchen_knife) || empty($chopping_board)){
    		echo "蛋炒饭需要用到的工具有电磁炉,锅,锅盖,铲子,饭碗,盘子,筷子,菜刀,案板。工具不足不能做蛋炒饭";
    		exit(0);
    	}
    	//资源判断
    	if(empty($water) || empty($electricity)){
    		echo "蛋炒饭需要用到的资源有水,电。资源不足不能做蛋炒饭";
    		exit(0);
    	}
    
    	echo "<br/>";
    
    	echo "先用菜刀在案板上把用水洗过多次的土豆切丝,在有电的情况下插上电磁炉打开大火热锅,锅中倒油,热油后加入切好的猪肉粒,1分钟后加入水洗过切好的葱姜蒜爆炒,倒入土豆丝炒熟,加入少量大豆油,把蒸熟放凉的大米适量放入锅中用铲子压扁压碎并不停中火翻炒,然如盐,味精,鸡精,廉价调料包,搅拌后转小火。把鸡蛋打入碗中加入盐,和调料用筷子搅拌均匀,开大火加入少量豆油,把鸡蛋倒入锅中使之与大米混合,翻炒加入少量引用水翻炒,水将要蒸干时转小火盖上锅盖2分钟后关掉电磁炉装盘配上筷子等待使用";
    }
    
    aliceDoTheCooking();
    

     访问方法时用:: 如$tool::cooking_shovel()

  • 相关阅读:
    微信扫码支付模式一和模式二的区别
    spring boot MongoDB的集成和使用
    Java 8 中的 Streams API 详解
    大并发量的订单的解析
    Springboot项目打成war包,部署到tomcat上,正常启动访问报错404
    最详细的虚拟机安装centos7教程
    nginx限制上传大小和超时时间设置说明/php限制上传大小
    一级域名和二级域名的区别是什么?分别有什么作用?
    快递物流查询接口介绍
    java 使用volatile实现线程数据的共享
  • 原文地址:https://www.cnblogs.com/keketoloveme/p/15011188.html
Copyright © 2020-2023  润新知