设计模式及面向对象的设计原则

include  加载类的方法  中文意思是包含

require  也是加载方法

require_once  加载

上面所有的都有两个方法

如:1  XX(“./Ren.class.name”)

         2  XX “./Ren.class.name”

自动加载类的方法   有限制,必须在同一个目录下  所有类文件的命名规则一样!满足这俩条件

function__autoload(classname)

{

         require $classname.”class.php”

}


设计模式

         1,单例模式  类的计划生育 只能造出一个来

                            1.让该类在外界无法访问

                            2.外界造一个对象,作业个方法返回对象

empty方法是判断变量是不是空  用法if(empty($dx))   {}

                                                                                                                                                                                                                                                 

class Dog

{

         static $dx

         private function __construct()

{

        

}  

         static  function DuiXdiang()          做一个静态的

{

                  if(empty(self::$dx))           self 一定不能忘了

                   {

                   $dx = new  Dog

}

        return  self:: $dx

}

}

Dog::DuiXiang();


工厂模式

        

abstract class YuanSuan        抽象的

{

         public $a;

         public $b;

        

         function Suan()

         {

         }

}

class Jia extends YuanSuan         继承抽象的 就这个关键字

{

         function Suan()

         {

                   return $this->a+$this->b;                            this  关键字

         }

}

class Jian extends YuanSuan                                        继承抽象的类的关键字

{

         function Suan()

         {

                   return $this->a-$this->b;

         }

}

class Cheng extends YuanSuan

{

         function Suan()

         {

                   return $this->a*$this->b;

         }

}

/*$j = new Cheng();

$j->Suan();

*/

class GongChang

{

         static function ShengChan($f)

         {

                   switch($f)

                   {

                            case "+":

                                     return new Jia();

                                     break;

                            case "-":

                                     return new Jian();

                                     break;

                            case "*":

                                     return new Cheng();

                                     break;

                   }

         }

}

$r = GongChang::ShengChan("*");

$r->a=10;

$r->b=5;

echo $r->Suan();