重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
原型模式,屬于創建型模式的一種。
主要針對對象進行克隆,把被克隆的對象稱之為原型,原型模式稱之為克隆模式也許更為貼切。
用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。
為霍林郭勒等地區用戶提供了全套網頁設計制作服務,及霍林郭勒網站建設行業解決方案。主營業務為成都網站建設、做網站、霍林郭勒網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
克隆出來的對象與原型對象不是一個,可能在某些業務場景上,可能會受影響
//抽象出來一個操作系統的類
abstract class OS {
public $os;
//setOS可以理解為安裝操作系統
public function installOS($os) {
$this->os = $os;
}
//runOS可以理解為運行操作系統
public function runOS() {
return $this->os . PHP_EOL;
}
//__clone方法是原型模式中需要有的,盡管可能用不上
abstract function __clone();
}
class Windows extends OS{
public function __clone() {}
}
class Linux extends OS{
public function __clone() {}
}
//調用端============================================
//偉大的工程師們開發好了兩套操作系統
$windows = new Windows();
$linux = new Linux();
//把它們克隆到光盤上,分別給3個用戶安裝。這樣就不用在從零開發操作系統了,直接復制開銷極小,然后把它們運行起來。
for($i = 0; $i < 3; $i ++) {
$new_windows = clone $windows;
$new_windows->installOS('windows');
echo $new_windows->runOS();
}
//把它們克隆到光盤上,分別給2個用戶安裝。這樣就不用在從零開發操作系統了,直接復制開銷極小,然后把它們運行起來。
for($j = 0; $j < 2; $j ++) {
$new_linux = clone $linux;
$new_linux->installOS('linux');
echo $new_linux->runOS();
}