PHP工厂模式、单例模式与注册树模式实例详解

2025-05-29 0 69

本文实例讲述了PHP工厂模式单例模式注册树模式。分享给大家供大家参考,具体如下:

三种基本设计模式

1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
2、单例模式:使某个类的对象仅允许创建一个
3、注册模式:全局共享和交换对象

工厂模式

?

1

2

3

4

5

6

7

8

9

10
<?php

namespace IMooc;

class Factory

{

static function createDatabase()

{

$db = new Database();

return $db;

}

}

?

1
$db = IMooc\\Factory::createDatabase();

工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。

单例模式

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
<?php

namespace IMooc;

class Database

{

protected $db;

private function __construct()

{

}

// 获取数据库操作实例

static function getInstance()

{

if(self::$db){

return self::$db;

}else{

self::$db = new self();

return self::$db;

}

}

}

// 无论调用多少次,只会创建一个实例

$db = IMooc\\Database::getInstance();

$db = IMooc\\Database::getInstance();

$db = IMooc\\Database::getInstance();

$db = IMooc\\Database::getInstance();

注册树模式

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
<?php

namespace IMooc;

class Register

{

protected static $objects;

static function set($alias, $object)

{

self::$objects[$alias] = $object;

}

static function get($name)

{

return self::$objects[$name];

}

static function _unset($alias)

{

unset(self::$objects[$alias]);

}

}

$db = \\IMooc\\Register::get('db1');

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/github_26672553/article/details/53886889

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP工厂模式、单例模式与注册树模式实例详解 https://www.kuaiidc.com/92934.html

相关文章

发表评论
暂无评论