1 //加载类:
  2 //include("./Ren.class.php");
  3 //include "./Ren.class.php";
  4 
  5 //require("./Ren.class.php");
  6 //require "./Ren.class.php";
  7 
  8 //require_once("./Ren.class.php");
  9 //require_once "./Ren.class.php";
 10 
 11 //自动加载类的方法
 12 //所有的类文件要放在同一个目录下
 13 //所有类文件的命名规则一致
 14 /*
 15 function __autoload($classname)
 16 {
 17     require $classname.".class.php";
 18 }
 19 
 20 
 21 $r = new Ren();*/
 22 
 23 
 24 //设计模式
 25 //1.单例模式
 26 //类的计划生育
 27 //1.让该类在外界无法造对象
 28 //2.让外界可以造一个对象,做一个静态方法返回对象
 29 //3.在类里面通过静态变量控制返回对象只能是一个
 30 
 31 /*class Dog
 32 {
 33     static $dx;
 34     public $test;
 35     
 36     private function __construct()
 37     {
 38         
 39     }
 40     
 41     static function DuiXiang()
 42     {
 43         //return new Dog();
 44         
 45         if(empty(self::$dx))
 46         {
 47             self::$dx = new Dog();
 48         }
 49         
 50         return self::$dx;
 51     }
 52 }
 53 
 54 $a = Dog::DuiXiang();
 55 
 56 
 57 $b = Dog::DuiXiang();
 58 $b->test="hello";
 59 
 60 
 61 var_dump($a);*/
 62 
 63 //工厂模式
 64 /*class YunSuan
 65 {
 66     public $a;
 67     public $b;
 68     
 69     function Jia()
 70     {
 71         return $a+$b;
 72     }
 73     function Jian()
 74     {
 75         return $a-$b;
 76     }
 77 }*/
 78 
 79 abstract class YuanSuan
 80 {
 81     public $a;
 82     public $b;
 83     
 84     function Suan()
 85     {
 86     }
 87 }
 88 
 89 class Jia extends YuanSuan
 90 {
 91     function Suan()
 92     {
 93         return $this->a+$this->b;
 94     }
 95 }
 96 
 97 class Jian extends YuanSuan
 98 {
 99     function Suan()
100     {
101         return $this->a-$this->b;
102     }
103 }
104 
105 class Cheng extends YuanSuan
106 {
107     function Suan()
108     {
109         return $this->a*$this->b;
110     }
111 }
112 
113 /*$j = new Cheng();
114 $j->Suan();
115 */
116 
117 class GongChang
118 {
119     static function ShengChan($f)
120     {
121         switch($f)
122         {
123             case "+":
124                 return new Jia();
125                 break;
126             case "-":
127                 return new Jian();
128                 break;
129             case "*":
130                 return new Cheng();
131                 break;
132         }
133     }
134 }
135 
136 
137 $r = GongChang::ShengChan("*");
138 $r->a=10;
139 $r->b=5;
140 echo $r->Suan();

 

posted on 2016-10-27 16:09  小学员G  阅读(124)  评论(0编辑  收藏  举报