問題
當使用子系統的**是,有時候發現自己過於深入的呼叫子系統的邏輯**,如果子系統**總是不斷變化,而你的**缺又在許多不同地方與子系統**互動,那麼隨著子系統的發展,**越來越維護困難,外觀模式要解決的就是使系統中的各層互相獨立,以便專案中某一部分的修改盡量不影響其他地方。
**實現
<?php/*外觀模式
*/function getproductfilelines($file
)function getproductobjectfromid($id,$productname
)function getnamefromline($line
)
return '';
}function getidfromline($line
))-/",$line,$array
))
return -1;
}class
product}//
client,直接呼叫,那麼我們的**和子系統緊密的耦合在一起
$lines = getproductfilelines('test.txt');
$obj = array
();foreach ($lines
as$line
) //
採用外觀模式
class
productfacade
private
function
compile()
}function
getproducts()
function getproduct($id)}
//client,
$productfacade = new productfacade('test.txt');
print_r($productfacade->getproducts());
?>
效果分離了專案中的不同部分
使得客戶端訪問**變得更簡潔,方便
只在乙個地方呼叫子系統(productfacade中),減少了出錯的可能性,並可預估子系統修改帶來的問題所在
讓物件導向程式設計更加靈活的的模式 裝飾模式
引言 組合模式幫組我們聚合元件,裝飾模式則使用類似節後來幫組我們改變具體元件的功能 問題將所有功能簡歷在整合體系上會導致系統中的類 式 增多,當你嘗試對整合書上不同的分支做想死的修改是,可能會產生重複 uml圖 實現 decoration.php 裝飾模式 class requesthelper 抽...
物件導向的程式設計之工廠模式
工廠模式是軟體工程領域一種廣為人知的設計模式,這種模式抽象了建立具體物件的過程。考慮到在ecmascript中無法建立類,開發人員就發明了一種函式,用函式來封裝以特定介面建立物件的細節,如下面的例子所示。1 function createperson name,age,job 9return o 1...
物件導向的程式設計
物件導向的程式設計 以面向過程的程式設計方式思考 1.確定長方形周長和面積的演算法。c a b 2,s a b 2.編寫兩個方法 函式 分別計算長方形的周長和面積。void double getc double a,double b void double gets double a,double ...