讓物件導向程式設計更加靈活的的模式 外觀模式

2022-07-15 14:48:15 字數 1066 閱讀 8547

問題

當使用子系統的**是,有時候發現自己過於深入的呼叫子系統的邏輯**,如果子系統**總是不斷變化,而你的**缺又在許多不同地方與子系統**互動,那麼隨著子系統的發展,**越來越維護困難,外觀模式要解決的就是使系統中的各層互相獨立,以便專案中某一部分的修改盡量不影響其他地方。

**實現

<?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 ...