免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1111 | 回复: 0
打印 上一主题 下一主题

笔记一:看书学设计模式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:48 |只看该作者 |倒序浏览
  1. <?php
  2. class CartLine
  3. {
  4.     public $price;
  5.     public $num;

  6.     public function total()
  7.     {
  8.         return $this->num * $this->price;
  9.     }
  10. }

  11. class Cart
  12. {
  13.     protected $sale = 0.8;
  14.     protected $lines = array();

  15.     public function addLine($cart)
  16.     {
  17.         $this->lines[] = $cart;
  18.     }

  19.     public function calcTotal()
  20.     {
  21.         $total = 0;
  22.         foreach ($this->lines as $line) {
  23.             $total+= $line->total();
  24.         }
  25.         $total = $this->calcSaleTotal($total);
  26.         return $total;
  27.     }

  28.     public function calcSaleTotal($amount)
  29.     {
  30.         return $amount * $this->sale;
  31.     }
  32. }

  33. $obj1 = new CartLine();
  34. $obj1->price = 100;
  35. $obj1->num = 2;
  36. $obj2 = new Cart();
  37. $obj2->addLine($obj1);
  38. echo $obj2->calcTotal();
忘记一切面向对象,重新学习,体会了一下分块设计原则手写了一下,购物车的打折设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP