本文共 1069 字,大约阅读时间需要 3 分钟。
band = $band; $this->title = $title; $this->price = $price; } public function buy(){ echo 'a customer is buying'.PHP_EOL; } public function acceptVisitor($visitor){ $visitor->visitCD($this); }}class CDVisitiorLogPurchase{ public function visitCD($cd){ $logline = "{$cd->title} by {$cd->band} was purchased for {$cd->price} "; $logline .= 'at '.date('Y-m-d H:i:s').PHP_EOL; echo $logline; }}class CDVisitorPopulateDiscountList{ public function visitCD($cd){ if($cd->price < 10){ $this->_populateDiscountList($cd); } } protected function _populateDiscountList($cd){ echo 'populateDiscountList was visited'.PHP_EOL; }}$externalBand = 'TFBOYS';$externalTitle = 'zuoshouyoushou';$externalPrice = 7;$cd = new CD($externalBand, $externalTitle, $externalPrice);$cd->buy();$cd->acceptVisitor(new CDVisitiorLogPurchase());$cd->acceptVisitor(new CDVisitorPopulateDiscountList());//当需要的对象包含以标准方式应用于某个对象的算法时,最佳的做法是使用访问者设计模式。
转载于:https://blog.51cto.com/hehe1987/1834324