PHP编程之使用Trait实现单例模式

PHPABC PHP开发 750 次浏览 , 没有评论

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

  •   trait 主要用于解决单继承引起的代码复用问题;

  •   在类中使用 trait 类似于include一个公用文件;

  •   trait 支持所有修饰符例如 final,static,abstract

  •   trait 不能通过 new 实例化;

  •   trait 中的方法冲突可通过 insteadof 或 as 关键词解决。通过 as 还可修改访问权限。
     


下面我们就使用Trait新特性实现单例模式:


/**  * Created by PhpStorm.  * User: Administrator  * Date: 2014/12/6  * Time: 21:50  */ trait TraitSingle{     private static  $_instance;     final public static function getInstance(){         if(!isset(self::$_instance)){             self::$_instance = new static();         }         return self::$_instance;     }     private function __construct(){         $this->int();     }     protected function int(){}     final private function __wakeup(){}     final private function __clone(){} } class MySingle{     use TraitSingle;     private $name;     private $email;     protected function int(){         $this->name = 'Jianxun Liu';         $this->email = '15071414515@163.com';     }     public function __destruct(){         echo "The TraitSingle is END ! ";     }     public function run(){         echo "This is TraitSingle /n My name is ".$this->name." AND email is ".$this->email."/n";     } } MySingle::getInstance()->run();

End,So Easy!
 


 


 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go