PHP最常用的2种设计模式工厂模式和单例模式介绍
程序员文章站
2022-09-10 16:44:38
1.工厂模式 主要作用是降低耦合度。 复制代码 代码如下: abstract class operation{ abstract public function getva...
1.工厂模式
主要作用是降低耦合度。
abstract class operation{
abstract public function getvalue($num1,$num2);
public function getattr(){
return 1;
}
}
class add extends operation{
public function getvalue($num1, $num2){
return $num1+$num2;
}
}
class sub extends operation{
public function getvalue($num1, $num2){
return $num1-$num2;
}
}
class factory{
public static function createobj($operation){
switch ($operation){
case '+': return new add();
case '-': return new sub();
}
}
}
$op=factory::createobj('-');
echo $op->getvalue(3, 6);
用在真正开发中一般当做数据库选择类。
2单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
class mysql{
public static $conn;
public static function getinstance(){
if (!self::$conn){
new self();
return self::$conn;
}else {
return self::$conn;
}
}
private function __construct(){
self::$conn= "mysql_connect:";// mysql_connect('','','')
}
public function __clone()
{
trigger_error("only one connection");
}
}
echo mysql::getinstance();
echo mysql::getinstance();
实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。
主要作用是降低耦合度。
复制代码 代码如下:
abstract class operation{
abstract public function getvalue($num1,$num2);
public function getattr(){
return 1;
}
}
class add extends operation{
public function getvalue($num1, $num2){
return $num1+$num2;
}
}
class sub extends operation{
public function getvalue($num1, $num2){
return $num1-$num2;
}
}
class factory{
public static function createobj($operation){
switch ($operation){
case '+': return new add();
case '-': return new sub();
}
}
}
$op=factory::createobj('-');
echo $op->getvalue(3, 6);
用在真正开发中一般当做数据库选择类。
2单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
复制代码 代码如下:
class mysql{
public static $conn;
public static function getinstance(){
if (!self::$conn){
new self();
return self::$conn;
}else {
return self::$conn;
}
}
private function __construct(){
self::$conn= "mysql_connect:";// mysql_connect('','','')
}
public function __clone()
{
trigger_error("only one connection");
}
}
echo mysql::getinstance();
echo mysql::getinstance();
实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。
上一篇: 基于PHP Web开发MVC框架的Smarty使用说明
下一篇: 入乡要随俗
推荐阅读
-
PHP最常用的2种设计模式工厂模式和单例模式介绍
-
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
-
前端开发的设计模式(常用单例模式、工厂、建造者、代理、中介、观察者、策略)
-
PHP最常用的2种设计模式工厂模式和单例模式介绍_PHP教程
-
php中设计模式工厂模式和单例模式实例
-
PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
-
php常用设计模式之工厂模式与单例模式介绍
-
PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
-
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
-
PHP最常用的2种设计模式工厂模式和单例模式介绍_PHP教程