首页 » 网站推广 » phptraitinstanceof技巧_PHP面试从单例模式的两种实现形式讲起

phptraitinstanceof技巧_PHP面试从单例模式的两种实现形式讲起

访客 2024-11-26 0

扫一扫用手机浏览

文章目录 [+]

单例(singleton)模式,当你实例化一个工具时,它可以确保你实例化的这个类将仅有一个实例。

当你利用单例模式第一次调用工具时,它就会被实例化,之后每一次调用都将返回同一个工具。
单例模式代表在运用程序不同部分被再三利用的资源。
个中常见的示例包括数据库连接和配置信息。

phptraitinstanceof技巧_PHP面试从单例模式的两种实现形式讲起

单例最主要的方面在于对创建实例的限定能力。
如果不这样做,潜在的多个实例将被创建。

phptraitinstanceof技巧_PHP面试从单例模式的两种实现形式讲起
(图片来自网络侵删)

单例模式实现办法1:

class Database{ private static $instance = null; private function __construct() { } public static function getInstance() { if (!(self::$instance instanceof Database)) { self::$instance = new Database(); } return self::$instance; }}

实现单例有 3 个关键点:

利用一个静态成员来保持一个单例实例,在这个例子中,我们有一个私有的 Database::$instance 属性。
一个私有的__construct()将决定这个类只能被本身所包含的静态方法实例化。
Database::getInstance()静态方法将用于数据库类。
当它被调用时,DB::getInstance() 将实例化一个 Database 类的工具并将这个工具指定给 Database:$instance 属性,然后返回这个工具,或只是返回先前实例化的工具。

我们之以是利用单例模式,是由于静态方法可以在全局范围内被访问,无论哪里,当我们须要一个数据库连接时,只需调用 Database::getinstance() 即可。

自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait。

Trait 是为类似 PHP 的单继续措辞而准备的一种代码复用机制。
Trait 为了减少单继续措辞的限定,使开拓职员能够自由地在不同层次构造内独立的类中复用 method。
Trait 和 Class 组合的语义定义了一种减少繁芜性的办法,避免传统多继续和 Mixin 类干系范例问题。

单例模式实现办法2:

trait Singleton{ static $instance = null; public static function getInstance() { $class = __CLASS__; if (!(self::$instance instanceof _CLASS_)) { self::$instance = new $class(); } return self::$instance; }}class DB{ use Singleton; private function __construct() { }}

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读1 评论0