作者DongFeng ()
看板PHP
标题[请益] 参数物件的使用
时间Mon Jul 10 23:21:59 2017
在「重构-改善既有程式的设计」与「无瑕的程式码」中都有资料传输物件/参数物件的章节或描述
不过书中举的例子多是以成对存在或相关的数值为例子, 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://webptt.com/cn.aspx?n=bbs/PHP/M.1499700124.A.B43.html
※ 编辑: DongFeng (175.111.59.53), 07/10/2017 23:25:13
1F:推 lvlightvivi: 想问第三种是为了解决什麽问题要多写一支来处理? 07/11 22:35