Я пишу вспомогательные классы для большого проекта на PHP, и я написал класс под названием Command. По сути, это оболочка ООП для управляемого выполнения системных команд из PHP. В нем есть такие методы, как addOption() для добавления опций типа -a и addArgument() для добавления других аргументов.
Мне нужно будет проделать много работы с файлами, поэтому я буду часто использовать класс Command. Вызов scp очень специфичен в том смысле, что мне каждый раз нужно использовать определенные параметры.
Есть ли смысл расширить этот класс и создать класс ScpCommand? Кажется, что у него есть отношение «есть», но на самом деле это то же самое, что и класс 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;
}
Действительно ли это фабрика, если я не использую подклассы? Это действительно важно?
Я не думаю, что это действительно имеет значение - если он подходит как решение, используйте его. Не зацикливайтесь на определениях паттернов.
Я все равно расширил класс, потому что у меня был метод execute (), который нужно было переопределить из-за характера вызова scp. знак равно
Я согласен, я думаю, вы могли бы легко привести хороший аргумент в пользу использования Factory. Хорошая мысль.