Re: [請益] OO有沒有可能這樣寫?

看板PHP作者 (夏天到了,冷不起來了說)時間13年前 (2012/06/14 10:58), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《tkdmaf (皮皮快跑)》之銘言: : 如果僅是因為你的需求在於要單純化單一功能的執行方法。 : 這是我覺得可行的做法。 : 只是說實在的,光是看你那樣的概念性想法我還不是很清楚你是要做什麼。 : 何況,如果物件的方法內容是能在外部被隨時抽換的話。 : 我不知道還要寫物件幹嘛。 : 你已經在內部抽換你所想要的方法,但不應該想說從外部定義他。 : 但事實上能不能外部抽換?當然行。 : 可是你抽換的也只是函式內的承載物件,而非本身的程式碼。 感謝! 其實有時也就是寫到後來想追求一種更方便更精簡的方法。 然後忘了是不是失了用物件的意義 我試著用俱體一點來形容這個物件的需求 == 物件 == class stastic{ private $date_range; public $score_data; public $user_data; public $team_data; public function __construct($date_range){ $this->date_range = $date_range; self::getBaseData(); self::analyticData(); } private function getBaseData(){ 從資料庫撈出使用者個人資料 存入$user_data 再依分組規則存入 $team_data[$team_id]陣列中 } private function analyticData(){ 把成績資料做統計分別把加總資料放入 $team_data } public function best($team_id,$subject){ 把各組的成績依$team_data->$subject做排序 傳回第一名的資料 } } // 主程式 $stastic = new stastic(7) $teams = $stastic->team_data; // 取得資料丟給view去列出 foreach($teams as $team_id=>$data){ echo $data->name // 組名 echo $data->score // 成績 echo $data->best($team_id,'math')->name // 取得分組數學第一的人 原本這裡的best我是想在 getBaseData時就把資料丟給他。 可是成績還沒統計出來,所以無法指定值。 所以在思考能不能指定個函數, => 在getBaseData()裡將$team_data加上個$team_data->best()。 等統計完畢時或是要輸出時再行呼叫best()這個函式 } 還是其實這個想法已經陷入了為了方便而兜圈子的迷思裡? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.202.164 ※ 編輯: JYHuang 來自: 140.116.202.164 (06/14 11:00)

06/14 12:05, , 1F
我最近在寫物件方面工具 會覺得只要跟資料庫有關的
06/14 12:05, 1F

06/14 12:05, , 2F
我就完全不會想重新用 物件去進行重包~
06/14 12:05, 2F

06/14 12:06, , 3F
就只有一些基準 或者一些常用的 例如 寄信 檢查這類的
06/14 12:06, 3F

06/14 12:06, , 4F
我才會進行工具製作~ 不然會失去彈性
06/14 12:06, 4F

06/14 13:34, , 5F
因為資料庫規劃的問題,使得我不得不用程式計算成績
06/14 13:34, 5F
文章代碼(AID): #1FsLCyOw (PHP)
討論串 (同標題文章)
文章代碼(AID): #1FsLCyOw (PHP)