我应该扩展这个课程还是只使用它?

时间:2008-11-18 17:18:41

标签: php oop inheritance

我正在为PHP中的大型项目编写辅助类,我编写了一个名为Command的类。它本质上是一个OOP包装器,以受控方式从PHP运行系统命令。它有像addOption()这样的方法来添加-a类型选项和addArgument()来添加其他参数。

我需要做很多scp的文件,所以我会经常使用Command类。对scp的调用非常具体,因为我每次都需要使用某些选项。

扩展此类并创建ScpCommand类是否有意义?它似乎有一个“是一种”关系,但它实际上与每次具有特定选项的Command类完全相同。我真的不认为我需要覆盖除构造函数之外的任何方法。我可能只会添加类变量。这真的只是一种便利。

这里最有意义的是什么?

1 个答案:

答案 0 :(得分:2)

如果只是配置,为什么不考虑在为您做锅炉盘配置后返回Command的工厂?

function getScpCommand($???) 
{
    $Command = new Command();
    $Command->addOption(/* scp specific this */);
    $Command->addArgument(/* scp specific that */);
    /* etc */
    $Command->addOption(/* handle your getScpCommand parameters here */)

    return $Command;
}