PHP中設計模式的學習筆記

2021-05-21 21:04:35 字數 2367 閱讀 4788

php中設計模式的學習筆記

設計模式(design pattern)是物件導向設計中反覆出現的問題的解決方案,設計模式是一種比一般類的設計更加抽象的一種思想,

它往往涉及到多個類的定義和使用。

在php的開發過程中,經常使用到得設計模式包括:簡單工廠模式、單元素模式、觀察者模式、命令模式、策略模式以及mvc模式等。

/*** 簡單工廠模式(****** factory pattern),具體指建立乙個類似於工廠的類,通過對類中成員方法的呼叫返回不同的物件

* 該模式的核心是工廠類,該類中含有必要的判斷邏輯,可以決定在什麼時候建立並返回哪個產品的例項化物件

*///定義抽象類product

abstract class product

}//定義具體產品類b

class productb extends product

}//定義工廠類

class productfactory}}

$product=productfactory::create("a");

$product->getname();

echo "

";$product=productfactory::create("b");

$product->getname();

/*** 單元素模式(singleton pattern)是指對指定的類只能例項化一次。

* 該模式通常包含乙個私有構造方法,用來確保無法通過建立物件或者轉殖的方式對其進行例項化

* 該模式還包含有乙個私有靜態屬性和公有靜態方法。

* 公有靜態方法負責對其本身進行例項化,而私有靜態屬性負責儲存例項化的物件。

*/class singleton

//定義私有構造方法

public static function getinstance()  //定義公有靜態方法

//return self::$instance;

}public function printstring()

$single=singleton::getinstance();

$single->printstring();

//$two=singleton::getinstance();

//$two->printstring();

/*** 觀察者模式(observer pattern)

*/inte***ce iobserver

inte***ce iobservable

class userlist implements iobservable

public function addcustomer($name)

}class userlistlogger implements iobserver

}$ul=new userlist();

$ul->addobserver(new userlistlogger());

$ul->addcustomer("aaa");

/*** 命令模式(command pattern)

*/inte***ce icommand  //定義命令介面

class commandchain

public function runcommand($name,$args) //執行命令}}

class usercommand implements icommand  //定義使用者命令類

else}}

class mailcommand implements icommand  //定義郵件命令類

else}}

$cc=new commandchain();

$cc->addcommand(new usercommand());

$cc->addcommand(new mailcommand());

$cc->runcommand('使用者',null);

echo '

';$cc->runcommand('郵件',null);

/*** 策略模式(strategy pattern)

*/inte***ce istrategy

class walkstrategy implements istrategy

}class ridebikestrategy implements istrategy

}class carstrategy implements istrategy

}class context

}$context=new context();

$context->find(new walkstrategy());

$context->find(new ridebikestrategy());

$context->find(new carstrategy());

php 設計模式 學習筆記

php 有如下幾種設計模式 初聽到設計模式可能讓你覺得很抽象,其實設計模式就是對常見程式設計問題的靈活解決方案。1 工廠模式 factory 他之所以被成為工廠模式是因為他負責 生產 物件,看看下面的例子 class factoryelse 你如何呼叫呢 factorymql factory fac...

PHP設計模式學習筆記

當多個地方需要例項化乙個類的時候,為了滿足之後可能需要做修改的可能的時候可以使用工廠模式。即在乙個類中的乙個方法例項化 之後需要修改只要修改該函式即可。資料庫鏈結,單例模式,將建構函式宣告為私有 遮蔽在其他地方例項化資料庫連線,宣告乙個方法建立例項 new self 即定義乙個受保護的屬性陣列,當呼...

PHP學習筆記2 設計模式

工廠設計模式 設計模式 design pattern 是一套反覆被使用 多數人知曉的 經過分類編目的 設計經驗的總結。三私一公 私有的靜態的儲存物件的屬性 私有的構造方法,阻止類外new物件 私有的轉殖方法,阻止類外clone物件 共有的靜態的建立物件的方法 單例設計模式的核心 單例設計模式的核心 ...