BoShurik, принципиальной разницы нет для человека, которому было адресовано это высказывание. Прочтите еще раз ответ, который был помечен решением и первый комментарий к моему ответу, и тогда поймете, почему ее нет.
Посыл был в том, что если вы захотите подменить реализацию(а это, чаще всего, нужно в тестах для моков), то лучше первый вариант. Но я сейчас обратил внимание, что вы инжектите класс, а не интерфейс. В таком случае никакой принципиальной разницы для вас нет.
Если методы выполнения и парсинга вывода команд зависят от протокола и ос, то ООП тут в самый раз - вы динамически будете определять как выполнять команду в зависимости от условий.
Ещё момент - не увлекайтесь сеттерами, старайтесь соблюдать целостность объекта. Т.е. креды вы должны получить ещё до создания объекта устройства(можно опять же ввести абстракцию подключения).
По выполнению команд можно пойти тем же путем, что я предлагал в ответе, только отдавать в методе execute() вывод этой команды. Над реализацией парсинга предлагаю подумать самому)
ThunderCat, ваш запрос выдает вообще все id свойств)) но я добавил условие
AND (
SELECT id
FROM user_property
WHERE user_id = u.id
AND property_id = up.property_id
)
и да, он действительно выдал мне id свойств, которых нету в таблице user_property для данного юзера.
Но мне бы хотелось не указывать user_id в условии и найти вообще все недостающие записи для каждого юзера
Ваша проблема в том, что вы не понимаете фундаментальных вещей, которые я озвучил в своём ответе.
Изучите их и все у вас получится.
Думаю, что для человека с подписью « IT & creative» это не составит труда.