bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

php常用的設計模式有哪些

本篇內容介紹了“php常用的設計模式有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

成都創新互聯2013年至今,是專業互聯網技術服務公司,擁有項目網站設計、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元振興做網站,已為上家服務,為振興各地企業和個人服務,聯系電話:13518219792

一、單例模式

1,含義

某個類只有一個實例,自動實例化并向整個系統提供這個類的實例。

即:應用程序只會有這個類的一個實例存在。

多用在數據庫操作,線程池,緩存,打印機中。

2,特點

只有一個實例,必須有構造函數,標記為private

向其他成員提供訪問這個實例的靜態方法

必須自行創建這個實例,擁有一個保存類的實例的靜態成員變量

3,代碼

class SingleCase {

    private static $_instance;

    private function __construct() {
       echo 'i has been'; 
    }
    
    public static function getInstance() {
       if(!isset(self::$_instance)) {
           self::$_instance = new self();
       }
       return self::$_instance;
    }
    
    private function __clone() {
    }
}

備注:存在難以調試,隱藏著依賴關系

二、工廠模式

1,含義

工廠模式是一個類,而這個類包含一些方法,這些方法的作用或者功能就是實例化對象

工廠模式通常用來返回符合類似接口的不同的類

2,特點

工廠模式一般有一個命名為Factory的靜態方法

這個靜態方法接收一個參數

這個靜態方法根據參數,返回不同的對象實例

3,代碼

class Factory {
    static public function getUser($type) {
        if ($type == 1) {
            return new A();
        }
        return new B();
    }
}

interface FetchName {
    public function getName()
}

class A implements FetchName {
    public function getName()
}

class B implements FetchName {
    public function getName()
}

//使用

$user = Factory::getUser(1);
$user->getName();

備注:有啥用?

如果一個系統,很多地方用 new User() 這種方式。有一天 new User('A');增加個參數,所有地方都需要變更;

如果一個系統,使用工廠模式User::getObj('1');  假如參數1返回new User()這個對象實例; 有一天new User() 增加個參數,我只需要改工廠中的類實例。

三、觀察者模式

1,含義

觀察者模式為您提供了避免組件之間緊密耦合的另一種方法

分為主題和觀察者,都需要實現接口和方法

主題里面進行觀察者注冊,并設置一個方法,這個方法的作用是調用觀察者的方法進行通知觀察者

2,特點

針對接口編程,不針對實現編程

觀察者模式定義對象的一對多依賴

當一個對象改變狀態時,它的所有依賴者都會收到通知并自動更新

3,代碼

class Paper {
    private $myObj = [];
    public function register($sub) {
        $this->myObj[] = $sub;
    }
    public function setMessage(){
      if ($this->myObj) {
          foreach ($this->myObj as $obj) {
              $obj->update();
          }
      }
    }
}

interface Observerable{
    public function update();
}

class Subscriber implements Observerable{
    public function update(){
        echo "Callback\n";
    }
}

備注:

$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1());
$paper->setMessage();

只要任何類注冊,調用setMessage()方法。其他注冊過的類都會收到update()方法的通知。

“php常用的設計模式有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

分享標題:php常用的設計模式有哪些
文章位置:http://vcdvsql.cn/article8/pepsop.html

成都網站建設公司_創新互聯,為您提供網站制作搜索引擎優化定制開發網站內鏈虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名