由於是午休時間寫的 所以不太詳細盡情諒解。
主要還是老生常談的問題 OOP 。。。
工作兩年 對OOP 這玩意有些自己的理念 ,但翻遍了各大書店的OOP 介紹都是天馬行空 (很像是一個人寫的)
<?php class Car{ public getName(){ return $this->name; } public getSpeed(){ return $this->speed; } } ?>
這種東西相信只會出現在書上 真正項目基本看不到這類代碼。。(JAVAbean除外)
而根據這類思路我有了以下代碼:
<?php class Order{ private _GoodsArr = array(); public function __construct(){ } /* * @return Goods {} */ public function getGoods(){ //查找訂單下的商品編號 Goods_sn foreach($Goods_sn as $goods_sn) array_push($this->_GoodsArr, new Goods($goods_sn)); return $this->_GoodsArr; } } class Goods{ public function getName(){} } $order1 = new Order('AANBA01'); $goodsArr = $order1->getGoods(); foreach($goodsArr as $goods){ echo $goods->getName().'<br>'; } ?>
但這卻和項目開發中的代碼有悖
<?php class Order{ public function __construct(){} public function getGoodsInfo(array('name','price')){ //進行數據結構的組織 } } $order2 = new Order('AANBA02'); echo $order2->getGoodsInfo(array('price')); ?>
個人覺得第一種比較符合面向對象規范 。但實際開發中往往都是第二種。
因為不是一個人開發所以只能順着大部分程序員的寫法來。 但這樣代碼的可復用性 大打折扣
相同功能寫上好幾遍 不知大家是否支持我的看法。 歡迎拍磚~