国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php教程:php設計模式介紹之適配器模式

2020-03-24 18:47:04
字體:
來源:轉載
供稿:網友
上文:《PHP設計模式介紹》第十二章 裝飾器模式《PHP設計模式介紹》第十三章 適配器模式接口的改變,是一個需要程序員們必須(雖然很不情愿)接受和處理的普遍問題。程序提供者們修改他們的代碼;系統庫被修正;各種程序語言以及相關庫的發展和進化。我孩子的無數玩具中有一個簡要地描述了這個兩難局面:你無法合理安排一個不得其所的人。問題你如何避免因外部庫的API改變而帶來的不便?假如你寫了一個庫,你能否提供一種方法允許你軟件的現有用戶進行完美地升級,即使你已經改變了你的API?為了更好地適宜于你的需要,你應該如何改變一個對象的接口?解決方案適配器(Adapter)模式為對象提供了一種完全不同的接口。你可以運用適配器(Adapter)來實現一個不同的類的常見接口,同時避免了因升級和拆解客戶代碼所引起的糾紛。 考慮一下當(不是假設!)一個第三方庫的API改變將會發生什么。過去你只能是咬緊牙關修改所有的客戶代碼,而情況往往還不那么簡單。你可能正從事一項新的項目,它要用到新版本的庫所帶來的特性,但你已經擁有許多舊的html' target='_blank'>應用程序,并且它們與以前舊版本的庫交互運行地很好。你將無法證明這些新特性的利用價值,如果這次升級意味著將要涉及到其它應用程序的客戶代碼。注:控制體模式
適配器(Adapter)模式是控制體模式的最新范例。一個適配器(Adapter)的結構類似于代理服務器(Proxy)和修飾器(Decorator),而它們的不同之處在于,適配器(Adapter)的目的是改變封裝類的接口,代理服務器(Proxy)和修飾器(Decorator)則是保持接口不變。樣本代碼讓我們看看當API改變時,如何保護應用程序不受影響。假設你費盡心思尋找合適的庫,最后終于找到了HwLib,一個(假設的)被設計用來發送信息的代碼集。下面是HwLib類的源代碼:// PHP4
/**
* the HwLib helps programmers everywhere write their first program
* @package HelloWorld
* @version 1
*/
class HwLib {
/**
* Say Hello
* @deprec this function is going away in the future
* @return string
*/
function hello() {
return Hello
}
/**
* target audience
* @return string
*/
function world() {
return World!
}
}下面是庫運行的范例:$hw = new HwLib;
echo $hw- hello(), $hw- world();HwLib有完備的說明文檔。在文檔中作者已經明確指出hello()方法會在未來的版本中不被支持(甚至淘汰)。
接下來,現在假設第二版的HwLib已經發布。一個全新的greet()方法代替了hello()。
下面是這個庫的新版本(注釋已被抽取掉):// version 2
class HwLib {
function greet() {
return Greetings and Salutations
}
function world() {
return World!
}
}html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闵行区| 兴海县| 蓝山县| 卢湾区| 玛沁县| 满洲里市| 宁乡县| 罗城| 宁波市| 汉源县| 阆中市| 云龙县| 通州区| 盐城市| 广平县| 满城县| 贵德县| 吉安市| 彩票| 贵定县| 镇平县| 内乡县| 康保县| 呼玛县| 天峨县| 凌源市| 汉寿县| 象州县| 普格县| 和政县| 黄平县| 津市市| 新昌县| 颍上县| 健康| 吉水县| 云霄县| 宜章县| 合江县| 合江县| 巩义市|