[請益] 參數物件的使用

看板PHP作者時間8年前 (2017/07/10 23:22), 8年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
在「重構-改善既有程式的設計」與「無瑕的程式碼」中都有資料傳輸物件/參數物件的章節或描述 不過書中舉的例子多是以成對存在或相關的數值為例子, ex: time range 在我個人的開發中有兩種情況會寫出帶有很多參數的方法, 那就是新增跟更新 以新增為例方法會長得像這樣: https://gist.github.com/anonymous/85443e3a7067e10bd44c12ac456ed39e 也看過寫成這樣的: https://gist.github.com/anonymous/d375b42e47a36fccf6de3490fb2f7089, 但這意味著要使用 create 方法必須了解內部用到了哪些 key-value, 所以我不喜歡這種寫法 所以我就想能不能建一個物件, 然後把新增時會用到的數值全部寫進裡頭後在丟進方法裡頭當參數: https://gist.github.com/anonymous/5efdefedab65cd4aaa80583d25a04f57 但這樣做之後卻又產生了新的疑問: 1. 要使用 create 的必須得了解 CreateUserParameters 開放了哪些 setter 2. 如果有一個 setter 沒有被呼叫的話, 對應的數值將為 null 3. 目前我是把參數物件都放在 ParameterObjects 這個命名空間下, 是否需要擴展命名空間變成 ParameterObjects/UserRepository, 然後把 CreateUserParameters.php 改成 Create.php? 以上幾個問題希望徵詢大家的意見, 如果有什麼不妥的地方也請多多指教, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.111.59.53 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1499700124.A.B43.html ※ 編輯: DongFeng (175.111.59.53), 07/10/2017 23:25:13

07/11 22:35, , 1F
想問第三種是為了解決什麼問題要多寫一支來處理?
07/11 22:35, 1F
文章代碼(AID): #1POvkSj3 (PHP)
文章代碼(AID): #1POvkSj3 (PHP)