成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速入門:PHP適配器模式簡述

開發 后端
PHP適配器模式為對象提供了一種完全不同的接口,你可以運用適配器(Adapter)來實現一個不同的類的常見接口。

PHP有很多值得學習的地方,這里我們主要介紹PHP適配器模式,接口的改變,是一個需要程序員們必須(雖然很不情愿)接受和處理的普遍問題。程序提供者們修改他們的代碼;系統庫被修正;各種程序語言以及相關庫的發展和進化。我孩子的無數玩具中有一個簡要地描述了這個兩難局面:你無法合理安排一個不得其所的人。

問題

你如何避免因外部庫的API改變而帶來的不便?假如你寫了一個庫,你能否提供一種方法允許你軟件的現有用戶進行完美地升級,即使你已經改變了你的API?為了更好地適宜于你的需要,你應該如何改變一個對象的接口?

解決方案

#T#PHP適配器模式為對象提供了一種完全不同的接口。你可以運用適配器(Adapter)來實現一個不同的類的常見接口,同時避免了因升級和拆解客戶代碼所引起的糾紛。考慮一下當(不是假設!)一個第三方庫的API改變將會發生什么。過去你只能是咬緊牙關修改所有的客戶代碼,而情況往往還不那么簡單。你可能正從事一項新的項目,它要用到新版本的庫所帶來的特性,但你已經擁有許多舊的應用程序,并且它們與以前舊版本的庫交互運行地很好。你將無法證明這些新特性的利用價值,如果這次升級意味著將要涉及到其它應用程序的客戶代碼。

注:控制體模式

PHP適配器模式是控制體模式的最新范例。一個適配器(Adapter)的結構類似于代理服務器(Proxy)和修飾器(Decorator),而它們的不同之處在于,適配器(Adapter)的目的是改變封裝類的接口,代理服務器(Proxy)和修飾器(Decorator)則是保持接口不變。

樣本代碼

讓我們看看當API改變時,如何保護應用程序不受影響。假設你費盡心思尋找合適的庫,最后終于找到了HwLib,一個(假設的)被設計用來發送信息的代碼集。以下為引用的內容:

  1. // PHP4  
  2. /**  
  3. * the HwLib helps programmers everywhere write their first program  
  4. * @package HelloWorld  
  5. * @version 1  
  6. */  
  7. class HwLib {  
  8. /**  
  9. * Say “Hello”  
  10. * @deprec this function is going away in the future  
  11. * @return string  
  12. */  
  13. function hello() {  
  14. return ‘Hello ‘;  
  15. }  
  16. /**  
  17. * target audience  
  18. * @return string  
  19. */  
  20. function world() {  
  21. return ‘World!’;  
  22. }  

下面是庫運行的范例:

  1. $hw =& new HwLib;  
  2. echo $hw->hello(), $hw->world(); 

HwLib有完備的說明文檔。在文檔中作者已經明確指出hello()方法會在未來的版本中不被支持(甚至淘汰)。接下來,現在假設第二版的HwLib已經發布。一個全新的greet()方法代替了hello()。下面是這個庫的新版本(注釋已被抽取掉):

  1. // version 2  
  2. class HwLib {  
  3. function greet() {  
  4. return ‘Greetings and Salutations ‘;  
  5. }  
  6. function world() {  
  7. return ‘World!’;  
  8. }  
責任編輯:田樹 來源: 博客
相關推薦

2020-10-25 08:56:21

適配器模式

2013-11-26 16:39:21

Android設計模式

2021-02-18 08:39:28

設計模式場景

2012-05-16 17:22:11

Java設計模式

2022-02-18 17:21:29

適配器模式客戶端

2022-02-13 23:33:24

設計模式Java

2024-02-22 12:13:49

適配器模式代碼

2012-08-02 10:46:34

JavaAdapter模式

2024-07-31 10:41:16

C#設計模式

2024-04-10 12:27:43

Python設計模式開發

2021-02-16 08:16:09

適配器模式MybatisJava

2013-02-26 10:55:47

C#適配器設計模式

2012-04-12 09:33:02

JavaScript

2022-05-29 22:55:00

適配器設計模式

2012-09-19 15:29:26

Worklight適配器

2021-08-16 17:15:19

設計模式Android適配器模式

2022-12-12 09:20:59

適配器模式接口

2024-12-09 09:30:00

適配器模式設計模式代碼

2023-09-06 13:20:00

適配器模式兼容性

2015-08-07 10:05:37

recyclervie超省寫法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品美女久久久久久免费 | 亚洲国产一区二区三区四区 | 精品国产欧美日韩不卡在线观看 | 超碰97人人人人人蜜桃 | 日韩三级免费网站 | 黄色一级特级片 | 成人国产精品入口免费视频 | 97精品视频在线观看 | 华丽的挑战在线观看 | 成人免费视频观看视频 | 一区二区三区四区在线 | 天天拍天天插 | 在线欧美小视频 | 欧美一区二区三区 | 久久男人 | 久久久www成人免费精品 | 亚洲综合色视频在线观看 | 91社区在线观看高清 | 久久久www成人免费精品 | 日韩在线播放一区 | 亚洲高清在线 | 久热精品在线播放 | 国产精品乱码一区二区三区 | av在线播放一区二区 | 国产欧美三区 | 国产乱码精品一区二区三区五月婷 | 国产毛片毛片 | 日韩在线播放一区 | 国产在线播 | 亚洲h在线观看 | 国产欧美一区二区三区在线看 | 亚洲精品第一页 | 久久影音先锋 | 最新av在线播放 | 国产精品国产a级 | 夜夜骑首页 | 日韩在线播放第一页 | 99福利在线观看 | 国产日韩久久 | 懂色中文一区二区在线播放 | 亚洲视频中文字幕 |