常用的PHP设计模式

热度:3082022-03-21 08:54 收藏 0 点赞 0

设计模式有好多种,我们先列举出来:单例模式,工厂模式,观察者模式,策略模式。

记这些模式我们不能死记硬背,需要这些设计模式了解,才能懂得如何使用。

1. 单例模式

从字面意思,就是一个实例模式,也就是说在整个系统运行中,保证一个类,只实例化一次,每次使用这个类的时候,不会再创建新的类。

优势:主要是减少资源开销,每次实例化都会增加资源消耗,如果只实例化一次,那么就降低了资源消耗。如果这个实例里有数据库连接,从而减少数据库连接次数。

简单代码实现:

class test{
	
	private static $_instance=false;
	
	public function __construct(){
		
		echo '实例化了';
	}
	
	public static function getInstance(){
		
		if(self::$_instance===false){
			self::$_instance = new self();
		}
		return self::$_instance;
		
		
	}
	
	
	
	
}


$test = test::getInstance();

$test = test::getInstance();

$test = test::getInstance();

2. 工厂模式

工厂即是批量生产的地方,如何批量生产?根据不同的条件,批量生产类返回给你。

实际上,工厂模式就是根据你的条件返回不同的类,去实现你要的功能。

网上大多数例子都举的是:一个计算器的抽象类,继承这个抽象类,实现加减乘除几种类,然后根据不同的符号,返回不同的计算器类,去实现针对不同符号的计算。

这里我就不举这个例子了,我另外创建一个其他例子去帮助大家理解工厂模式:

class ClassA{
	function dothing(){
		echo 'A';
	}
}
class ClassB{
	function dothing(){
		echo 'B';
	}
}

class ClassC{
	function dothing(){
		echo 'C';
	}
}

class test {

	private $obj;
	public function __construct(){
		
		
	}
	
	public function getObj($type){
		switch($type){
			case 'A':
			$obj = new ClassA();
			break;
			case 'B':
			$obj = new ClassB();
			break;
			case 'C':
			$obj = new ClassC();
			break;
			
			
		}
		return $obj;
		
	}
	

}

$type = 'A';
$obj = new test($type);

$obj->dothing();

工厂模式主要是用户同类型的类工作,按需分配,需要保证类里面的方法一致,所以使用抽象类,让所有类继承它,并实现响应的方法,保证方法统一。


3. 观察者模式






暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

外卖天天领红包,饿了么,美团红包天天都有!

外卖天天领红包,饿了么,美团红...

最低每顿可省2元

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本