開放封閉原則:乙個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。
黎克特制替換原則:所有引用基類的地方必須能透明地使用其子類的物件.
依賴倒置原則:高層模組不應該依賴低層模組,二者都應該依賴其抽象;抽象不應該依賴細節;細節應該依賴抽象。
單一職責原則:不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。
介面隔離原則:客戶端不應該依賴它不需要的介面;乙個類對另乙個類的依賴應該建立在最小的介面上。
迪公尺特法則:乙個物件應該對其他物件保持最少的了解。
首先來看一下單例模式。在某些系統中,為了節省記憶體資源、保證資料內容的一致性,對某些類要求只能建立乙個例項,這就是所謂的單例模式。
所謂單例模式,即在應用程式中最多只有該類的乙個例項存在,一旦建立,就會一直存在於記憶體中。
單例模式有 3 個特點:
單例類只有乙個例項物件;
單例類不能直接例項化建立,而是只能由類本身例項化。建構函式必須標記為private,從而防止類被例項化。
單例類對外提供乙個訪問該單例的全域性訪問點;
單例模式的主要角色如下。
//防止使用clone轉殖物件
private function __clone(){}
/*** 靜態工廠方法,返還此類的唯一例項
*/static public function getinstance()
return self::$instance;
}/**
* 測試用方法
*/public function test()
}$sing = singleton::getinstance();
$sing->test();
$sing2 = new singleton()
以下是它通常適用的場景的特點。
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...