PHP物件導向設計模式和設計原則

2022-08-09 05:06:10 字數 1380 閱讀 2640

一、設計模式

1.單例模式

目的:讓乙個類只能生成乙個物件

步驟:    ①將建構函式變成私有的 

②在類裡面做乙個靜態成員函式造物件

③在方法裡加限制條件

//

單例模式

class ren

public

static

function duixiang()

return self::$r; //

返回$r中的唯一的例項化物件

} }

$r = ren::duixiang(); //

訪問靜態函式例項化物件

$r->name = "張三"; //

給物件的$name賦值"張三"

$r1 = ren::duixiang(); //

測試是否只有乙個物件

var_dump($r1);

只有乙個物件

工廠模式

目的:做乙個專門造物件的工廠

如果乙個父類的子類量比較龐大,子類名命名方式不一致,可以用這種模式以代號方式造物件

//

工廠模式

class jisuan

public

function __construct($a,$b)

}class jia extends jisuan

}class jian extends jisuan

}class cheng extends jisuan

}class chu extends jisuan

}class quyu extends jisuan

}class gongchang

}

}$j = gongchang::duixiang(3,2,"%"); //

測試echo

$j->js(); //

輸出

輸出結果

二、設計六大原則

1.開-閉原則,講的是設計要對擴充套件有好的支援,而對修改要嚴格限制。

2.黎克特制代還原則,子類必須能夠替換基類,否則不應當設計為其子類。

3.依賴倒換原則,設計要依賴於抽象而不是具體化,換句話說就是設計的時候我們要用抽象來思考,而不是一上來就開始劃分我需要哪些哪些類,因為這些是具體。

4.介面隔離原則,將大的介面打散成多個小介面

5.單一職責:乙個類的功能盡量單一,降低耦合

6.迪公尺特法則(最少知識原則),乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話

php 物件導向及設計模式

物件 歸納,總結 抽象成為類 類 具體化實現 例項化成為物件 屬性中的變數可以初始化,但是初始化的值必須是常數,這裡的常數是指php指令碼在編譯階段就可以得到其值,而不依賴於執行的資訊才能求值。如可用常數5,而不能用7 2獲得。封裝盡可能隱蔽物件的內部細節,對外形成乙個邊界,只保留有限的對外介面,使...

物件導向設計原則和設計模式

誰來建立另乙個類的示例?對於類a和類b,滿足下列條件 1.b包含a 2.b記錄a 3.b和a關係很密切 4.b擁有a例項化所必需的示例 則應該由b來建立a的例項,其中1 2優先 為乙個物件分配職責的一般原則是什麼?誰具有完成一件事情所必須的資訊,就把職責分配給它 步驟 1.把職責描述清楚 2.設計模...

PHP常用設計模式及物件導向設計 筆記和學習

建造者模式 乙個導演類,傳入乙個 不同builder類 具體怎麼製造由此決定 來建立一輛車 定義build介面 不同車輛build類,根據不同來建造 和工廠差不多,要稍複雜一點 class director class engineer class whell class door inte ce ...