最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php設(shè)計模式介紹之值對象模式第3/5頁

 更新時間:2008年04月13日 22:10:17   作者:  
在所有的最簡單的程序中,大多數(shù)對象都有一個標(biāo)識,一個重要的商業(yè)應(yīng)用對象,例如一個Customer或者一個SKU,有一個或者更多的屬性---id,name,email地址,這樣可以把它從同一個類的其他實例區(qū)分開來。此外,對象有一個恒定的標(biāo)識:它是貫穿于整個應(yīng)用程序的一個唯一的標(biāo)識,對于程序員來說,”customer A”在任何地方就是”customer A”,并且只要你的程序在持續(xù)運行時"customer A"仍然是"customer A"。 但是一個對象不需要有一個標(biāo)識。有些對象僅僅是為了描述其他對象的屬性。

詳細(xì)例子:

讓我們在一下更加復(fù)雜的例子中查看值對象模式的功能。

讓我們開始實現(xiàn)一個的基于PHP5中Dollar類中的一個Monopoly游戲。

第一個類Monopoly的框架如下:

class Monopoly {
protected $go_amount;
/**
* game constructor
* @return void
*/
public function __construct() {
$this->go_amount = new Dollar(200);
}
/**
* pay a player for passing 揋o?/span>
* @param Player $player the player to pay
* @return void
*/
public function passGo($player) {
$player->collect($this->go_amount);
}
}
目前,Monopoly的功能比較簡單。構(gòu)造器創(chuàng)建一個Dollar類的實例$go_amount,設(shè)定為200,實例go_amount常常被passtGo()函數(shù)調(diào)用,它帶著一個player參數(shù),并讓對象player的函數(shù)collect為player機(jī)上200美元.

Player類的聲明請看下面代碼,Monoplay類調(diào)用帶一個Dollar參數(shù)的Player::collect()方法。然后把Dollar的數(shù)值加到Player的現(xiàn)金余額上。另外,通過判斷Player::getBalance()方法函數(shù)返回來的余額,我們可以知道使訪問當(dāng)前Player和Monopoly對象實例是否在工作中。

class Player {
protected $name;
protected $savings;
/**
* constructor
* set name and initial balance
* @param string $name the players name
* @return void
*/
public function __construct($name) {
$this->name = $name;
$this->savings = new Dollar(1500);
}
/**
* receive a payment
* @param Dollar $amount the amount received
* @return void
*/
public function collect($amount) {
$this->savings = $this->savings->add($amount);
}
* return player balance
* @return float
*/
public function getBalance() {
return $this->savings->getAmount();
}
}
上邊已經(jīng)給出了一個Monopoly和Player類,你現(xiàn)在可以根據(jù)目前聲明的幾個類定義進(jìn)行一些測試了。

MonopolyTestCase的一個測試實例可以像下面這樣寫:

class MonopolyTestCase extends UnitTestCase {
function TestGame() {
$game = new Monopoly;
$player1 = new Player(‘Jason');
$this->assertEqual(1500, $player1->getBalance());
$game->passGo($player1);
$this->assertEqual(1700, $player1->getBalance());
$game->passGo($player1);
$this->assertEqual(1900, $player1->getBalance());
}
}
如果你運行MonopolyTestCase這個測試代碼,代碼的運行是沒有問題的?,F(xiàn)在可以添加一些新的功能。

相關(guān)文章

  • 8個PHP數(shù)組面試題

    8個PHP數(shù)組面試題

    這篇文章主要介紹了8個PHP數(shù)組面試題,例如寫函數(shù)創(chuàng)建長度為10的數(shù)組,數(shù)組中的元素為遞增的奇數(shù),首項為1、創(chuàng)建長度為10的數(shù)組,數(shù)組中的數(shù)為遞增的等比數(shù),比值為3,首項為等題目,需要的朋友可以參考下
    2015-06-06
  • PHP中session使用方法詳解

    PHP中session使用方法詳解

    在PHP開發(fā)中對比起Cookie,session 是存儲在服務(wù)器端的會話,相對安全,并且不像 Cookie 那樣有存儲長度限制,本文簡單介紹 session 的使用
    2007-03-03
  • PHP運行SVN命令顯示某用戶的文件更新記錄的代碼

    PHP運行SVN命令顯示某用戶的文件更新記錄的代碼

    使用SVN開發(fā)者們平時開發(fā)或代碼上線過程中需要知道某個時間段內(nèi)修改或添加過那些文件,所以用PHP寫了個小程序,直接在瀏覽器中調(diào)用即可
    2014-01-01
  • 淺談PHP中Stream(流)

    淺談PHP中Stream(流)

    Stream是PHP開發(fā)里最容易被忽視的函數(shù)系列(SPL系列,Stream系列,pack函數(shù),封裝協(xié)議)之一,但其是個很有用也很重要的函數(shù)。Stream可以翻譯為“流”,在Java里,流是一個很重要的概念。
    2015-06-06
  • php日志函數(shù)error_log用法實例分析

    php日志函數(shù)error_log用法實例分析

    這篇文章主要介紹了php日志函數(shù)error_log用法,結(jié)合實例形式分析了php日志函數(shù)error_log相關(guān)的配置文件設(shè)置、函數(shù)功能、用法與使用注意事項,需要的朋友可以參考下
    2019-09-09
  • 網(wǎng)站用php實現(xiàn)paypal整合方法

    網(wǎng)站用php實現(xiàn)paypal整合方法

    雖然在中國paypal不是很流行,但如果把范圍擴(kuò)大到世界的話,那paypal無疑就是老大了。
    2010-11-11
  • 微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法

    微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法

    這篇文章主要介紹了微信公眾號點擊菜單即可打開并登錄微站的實現(xiàn)方法,以實例形式對回調(diào)、菜單及參數(shù)的處理等具體實現(xiàn)步驟與功能代碼都做了較為詳細(xì)的描述,對于微信公眾號的開發(fā)來說具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • php操作sqlserver關(guān)于時間日期讀取的小小見解

    php操作sqlserver關(guān)于時間日期讀取的小小見解

    以前一直在用mysql對sqlserver不是很熟悉,于是摸著石頭過河。沒有別的至少mysql和sqlserver還算是親戚 做條件查詢的時候。出現(xiàn)了問題
    2009-11-11
  • Php獲取金書網(wǎng)的書名的實現(xiàn)代碼

    Php獲取金書網(wǎng)的書名的實現(xiàn)代碼

    php獲取金書網(wǎng)的書名的實現(xiàn)代碼。
    2010-06-06
  • 兼容PHP5的PHP目錄管理函數(shù)庫

    兼容PHP5的PHP目錄管理函數(shù)庫

    php下進(jìn)行目錄的一些操作,經(jīng)常用到的方法
    2008-07-07

最新評論

神农架林区| 陇西县| 清涧县| 武宁县| 自贡市| 札达县| 平凉市| 合作市| 陆丰市| 内丘县| 中牟县| 宁明县| 富源县| 安徽省| 和田市| 武城县| 曲阜市| 茌平县| 永寿县| 河北省| 金塔县| 贡觉县| 淳化县| 汾阳市| 平定县| 伊川县| 东乌珠穆沁旗| 陵水| 延寿县| 孟村| 长武县| 固阳县| 新昌县| 岢岚县| 桃源县| 弥渡县| 屏东县| 肥城市| 古丈县| 西和县| 年辖:市辖区|