创建函数包装器

问题描述

我知道关于函数包装器有很多问题/答案。 让我加我的。

我遇到的情况是我有一个函数,我们将其称为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 (将#修改为@)