问题描述
我知道关于函数包装器有很多问题/答案。 让我加我的。
我遇到的情况是我有一个函数,我们将其称为draw_this($arg1,$arg2)
,比如说38个不同的位置。
后来发现,只有在我们也添加$arg3
的情况下draw_this()才能正常工作。因此draw_this()现在看起来像:draw_this($arg1,$arg2,$arg3)
。
但是必须始终提供$arg3
。为了简化起见,可能的是,但我认为相当糟糕的解决方案是创建包装函数,
“方法1”:
function draw_this_wrapper($arg1,$arg2){
$arg3 = include($arg3);
draw_this($arg1,$arg3);
}
或更糟糕的是,“方法2”:
draw_this($arg1,$arg2){
$arg3 = include($arg3);
...
}
为什么我真的不喜欢这些解决方案是因为它们(至少在我看来)破坏了封装原理,而封装原理具有许多无法摆脱的优势(或者我错了,因为必须每次都提供信息?) )。方法1至少使用“ kinda”保留封装。但是,它消除了查看draw_this()
实际外观的功能(因为它是用三个而不是两个参数来调用的。
但是,我的印象是我可能会错过这里的设计原则,这是我尚不知道的有关如何以良好/“干净”的方式正确解决此问题的方法。您能给我一个深刻的见解吗,这将是一个好的解决方案? (主要问题是必须在所有38个位置等处更改功能。)
提前谢谢!
p.s。抱歉,我忘记添加$arg3
总是一样。因此它不会根据上下文而改变。但是,一切都在程序环境中完成。解? :/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)