close
文章出處

1、單例模式

目的:為了控制對象的數量(只能夠有一個,相當于類的計劃生育)
做法
1.將類的構造函數做成私有的
2.在類里面做了一個公有的函數來造對象
3.將該函數變為靜態的
4.在函數里面加控制

例:

<?php
class Ren
{
    public $name;
    
    //成員變量用來存儲該對象
    static public $dx;
    
    private function __construct()       私有的 構造函數
    {
        
    }
    
    static function DuiXiang()           把方法變成靜態的
    {
        if(empty(self::$dx))             判斷  是否是空
        {
             self::$dx = new Ren();
        }
        
        return self::$dx;
    }
}

$r = Ren::DuiXiang();
$r->name = "張三";
                            兩個會指向一個函數
$r1 = Ren::DuiXiang();
$r1->name = "李四";

var_dump($r);
?>

2、工廠模式

用來生產對象

例:

<?php

abstract class YunSuan
{
    public $a;
    public $b;
    
    function Suan()
    {
    }
}


class Jia extends YunSuan
{
    function Suan()
    {
        return $this->a+$this->b;
    }
}

class Jian extends YunSuan
{
    function Suan()
    {
        return $this->a-$this->b;
    }
}

class Cheng extends YunSuan
{
    function Suan()
    {
        return $this->a*$this->b;
    }
}

//做一個工廠類
class GongChang
{
    static function ShengChan($fuhao)
    {
        switch($fuhao)
        {
            case "+":
                return new Jia();
                break;
            case "-":
                return new Jian();
                break;
            case "*":
                return new Cheng();
                break;
        }
    }
}

//算加法
$suan = GongChang::ShengChan("*");
$suan->a = 10;
$suan->b = 5;
echo $suan->Suan();


?>

 


不含病毒。www.avast.com
arrow
arrow
    全站熱搜

    AutoPoster 發表在 痞客邦 留言(0) 人氣()