首頁 > 後端開發 > php教程 > php常用設計模式之工廠模式與單例模式介紹

php常用設計模式之工廠模式與單例模式介紹

WBOY
發布: 2016-07-25 09:05:19
原創
816 人瀏覽過
  1. /**
  2. 工厂模式的例子
  3. @link http://bbs.it-home.org
  4. */
  5. abstract class Operation{
  6. abstract public function getValue($num1,$num2);
  7. public function getAttr(){
  8. return 1;
  9. }
  10. }
  11. class Add extends Operation{
  12. public function getValue($num1, $num2){
  13. return $num1+$num2;
  14. }
  15. }
  16. class Sub extends Operation{
  17. public function getValue($num1, $num2){
  18. return $num1-$num2;
  19. }
  20. }
  21. class Factory{
  22. public static function CreateObj($operation){
  23. switch ($operation){
  24. case '+': return new Add();
  25. case '-': return new Sub();
  26. }
  27. }
  28. }
  29. $Op=Factory::CreateObj('-');
  30. echo $Op->getValue(3, 6);
  31. ?>
复制代码

在实际的开发中,一般用作数据库选择类。

再来看php设计模式之单例模式:单例即唯一存在。简单的说,一个对象只负责一个特定的任务; 比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。

  1. class Mysql{
  2. public static $conn;
  3. public static function getInstance(){
  4. if (!self::$conn){
  5. new self();
  6. return self::$conn;
  7. }else {
  8. return self::$conn;
  9. }
  10. }
  11. private function __construct(){
  12. self::$conn= "mysql_connect:";// mysql_connect('','','')
  13. }
  14. public function __clone()
  15. {
  16. trigger_error("Only one connection");
  17. }
  18. }
  19. echo Mysql::getInstance();
  20. echo Mysql::getInstance();
  21. ?>
复制代码

说明: 单例模式多用作数据库连接类,并经常与工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。



來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板