让我们想象一下这个课程:
Class Foo {
function1($p1, $p2)
{
do_common_thing1()
specific_1($p1)
specific_2($p2)
do_common_thing2()
}
function2($p1)
{
do_common_thing1()
specific_3($p1)
do_common_thing2()
}
/** ... */
function99()
{
do_common_thing1()
specific_999()
do_common_thing2()
}
}
如何编写类以避免重复每个方法中的常用功能? 我听说过模板方法模式,但它似乎不适用于我的所有方法
答案 0 :(得分:1)
考虑一下:
protected function doWithCommon($func) {
do_common_thing1();
$func();
do_common_thing2();
}
public function func1() {
$this->doWithCommon(function() {
// specific
});
}