ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 工厂模式 class A{} class B{} class Gongchang{ static function GetObject( $classname ){ $obj=new $classname(); return $obj; } } $o1=Gongchang::GetObject(“A”); $o2=Gongchang::GetObject(“B”); #### 单例模式 例,就是实例(Instance),其实就是对象(object)单例:就是一个对象; 单例模式:就是设计这样一个类,这个类只能“创造”出它的一个对象(实例); class Single{ private function \_\_construct(){} //第一步私有化构造方法 static private $instance=null; //第二步:定义一个静态属性,初始值为null //第三步:定一个静态方法,初始值为null static function GetObject() { //控制好对象,然后返回给人家 if( !isset(self::$instance) ) { //没有 $obj=new self(); //生产一个 self::$instance=$obj; //保存起来 return $obj; //返回 } else { //表示已经生产过了 return self::$instance; //直接返回已经生产的对象 } } } 无法new创建对象了,只能$obj1=Single::GetObject(); 这样就有对象了 但是$obj1=Single::GetObject(); $obj2=Single::GetObject(); ![Image](https://box.kancloud.cn/e8f1e5b5f05e09e19becb00429609fd1_271x61.png)对象标识符一样!