客官,留下你的赞;成为我的粉丝,一起上车哦!评论区欢迎你的留言
你可以在这里查看并fork
源代码 GitHub
多例模式
上面我们讲解了单例模式
。多例模式,顾名思义是具有多个实例的设计模式,每个实例自身创建和管理。
下面用PHP代码实现多例模式
<?php
/**
* PHP7 多例模式
* 一个类有多个相同的实例,每个实例自身创建和管理
* @link https://github.com/Echo-Mr-Pengw/Design-Pattern/
* @author new1024kb
* @since 2020-01-02
*/
//终结类 不能被继承
final class multipleCaseMode {
/**
* [$instance 私有的 保存多个实例的数组]
* @var array
*/
private static $instance = [];
/**
* [__construct 私有的构造方法,防止类外new]
*/
private function __construct() {}
/**
* [__clone 私有的魔术方法, 防止类外对象的克隆]
* @return [type] [description]
*/
private function __clone() {}
/**
* [__wakeup 私有的构造方法,防止类外对象的反序列化]
*/
private function __wakeup() {}
/**
* [getInstance 获取实例的唯一入口]
* @param string $instanceName [实例名]
* @return [object] [返回对象]
*/
public static function getInstance(string $instanceName) {
if(!isset(self::$instance[$instanceName])) {
self::$instance[$instanceName] = new self;
}
return self::$instance[$instanceName];
}
}