Должен ли я расширить этот класс или просто использовать его?

Я пишу вспомогательные классы для большого проекта на PHP, и я написал класс под названием Command. По сути, это оболочка ООП для управляемого выполнения системных команд из PHP. В нем есть такие методы, как addOption() для добавления опций типа -a и addArgument() для добавления других аргументов.

Мне нужно будет проделать много работы с файлами, поэтому я буду часто использовать класс Command. Вызов scp очень специфичен в том смысле, что мне каждый раз нужно использовать определенные параметры.

Есть ли смысл расширить этот класс и создать класс ScpCommand? Кажется, что у него есть отношение «есть», но на самом деле это то же самое, что и класс Command с определенными параметрами каждый раз. Я действительно не думаю, что мне нужно будет переопределять какие-либо методы, кроме конструктора. Я бы, наверное, добавил просто переменные класса. Это действительно было бы просто для удобства.

Что здесь имеет наибольший смысл?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
127
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если это просто конфигурация, почему бы не рассмотреть фабрику, которая возвращает команду после выполнения вашей стандартной конфигурации за вас?

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;
}

Я согласен, я думаю, вы могли бы легко привести хороший аргумент в пользу использования Factory. Хорошая мысль.

Chris Kloberdanz 18.11.2008 20:48

Действительно ли это фабрика, если я не использую подклассы? Это действительно важно?

Chris Kloberdanz 19.11.2008 19:56

Я не думаю, что это действительно имеет значение - если он подходит как решение, используйте его. Не зацикливайтесь на определениях паттернов.

Ken 22.11.2008 13:03

Я все равно расширил класс, потому что у меня был метод execute (), который нужно было переопределить из-за характера вызова scp. знак равно

Chris Kloberdanz 24.11.2008 18:52

Другие вопросы по теме