最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

php工厂模式简单使用说明

时间:2014-06-09 16:40来源: 作者: 点击: 次
本文章来给大家介绍php入门教程之工厂模式哦,工厂模式概念:实例化对象,用工厂方法替代new操作,有需要了解学习的朋友可参考. 工厂模式实例代码: //首先定义什么是人类 interface Human{ //人是愉

本文章来给大家介绍php入门教程之工厂模式哦,工厂模式概念:实例化对象,用工厂方法替代new操作,有需要了解学习的朋友可参考.

工厂模式实例代码:

  1. //首先定义什么是人类  
  2.  interface Human { 
  3.     //人是愉快的,会笑的  
  4.     public function laugh();  
  5.     //人类还会哭,代表痛苦  
  6.     public function cry(); 
  7.     //人类会说话  
  8.     public function talk();  
  9. } 
  10. //然后定义具体的人种 
  11. class YellowHuman implements Human {//黄色人种,这个翻译的不准确,将就点吧  
  12.     function cry() { var_dump( "黄色人种会哭");} 
  13.     function laugh() {var_dump( "黄色人种会大笑,幸福呀!");} 
  14.     function talk() {var_dump( "黄色人种会说话,一般说的都是双字节"); } 
  15. } 
  16. class WhiteHuman implements Human { //白色人种 
  17.     public function cry() {var_dump("白色人种会哭");}  
  18.     public function laugh() {var_dump("白色人种会大笑,侵略的笑声"); }  
  19.     public function talk() {var_dump("白色人种会说话,一般都是但是单字节!"); }  
  20. } 
  21. class BlackHuman implements Human { //黑色人种 
  22.     public function cry() {var_dump("黑色人种会哭");}  
  23.     public function laugh() {var_dump("黑色人种会大笑,侵略的笑声"); }  
  24.     public function talk() {var_dump("黑色人种会说话,一般都是但是单字节!"); }  
  25. } 
  26. //人种也定义完毕了,那我们把八卦炉定义出来: 
  27. class HumanFactory { 
  28.     //定一个烤箱,泥巴塞进去,人就出来,这个太先进了  
  29.     public static function createHuman( $c ){  
  30.         if ($c instanceof Human ) {//判断是否继承自Human 
  31.             return $c;  
  32.         }else { 
  33.             var_dump("必须跟HuMan有一腿");  
  34.         } 
  35.     }  
  36. } 
  37.  
  38. var_dump("------------造出的第一批人是这样的:白人-----------------");  
  39. $whiteHuman = HumanFactory::createHuman( new WhiteHuman());  
  40. $whiteHuman->cry();  
  41. $whiteHuman->laugh();  
  42. $whiteHuman->talk();  
  43.       
  44.  //女娲第二次造人,火候加足点,然后又出了个次品,黑人  
  45. var_dump("nn------------造出的第二批人是这样的:黑人-----------------");  
  46. $blackHuman = HumanFactory::createHuman(new BlackHuman());  
  47. $blackHuman->cry();  
  48. $blackHuman->laugh();  
  49. $blackHuman->talk();  
  50.       
  51. //第三批人了,这次火候掌握的正好,黄色人种(不写黄人,免得引起歧义),备注:RB人不属于此列  
  52. var_dump("nn------------造出的第三批人是这样的:黄色人种-----------------");  
  53. $yellowHuman = HumanFactory::createHuman(new YellowHuman());  
  54. $yellowHuman->cry();  
  55. $yellowHuman->laugh();  
  56. $yellowHuman->talk(); 
(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容