Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241

Командная строка

04.01.2014, 21:06. Показов 957. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пишу аналог командной строки, применяю шаблон команда.
Проблема:
есть класс CommandLine, который хранит список^^ всех команд(Map<String, Command>)

Java
1
2
3
4
5
interface Command {
    void execute(String ... args);
    String getName();
    String getDescription();
}
Есть класс-команда HelpCommand implements Command, метод execute() которого выводит список всех команд из списка^^.

Как получить доступ к этому списку команд(поле класса CommandLine) в классе HelpCommand, не делая класс HelpCommand inner классом? Идея - чтобы полностью избавиться от inner классов.
Были мысли в классе HelpCommand создавать обьект CommandLine и у него брать поле, но это выглядит совсем не очень.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2014, 21:06
Ответы с готовыми решениями:

Пустая командная строка
Добрый день! Через командную строку была откомпилирована и запущена программа на Java, однако в результате курсор переместился на пустую...

Командная строка
Начал изучать Java. Есть простая учебная программка (вывод двух строк): public class Factorial { public static void main(String...

Командная строка
public class Sqrt { static void sqrt(long a){ double b=a; int i=0; while ((b*b&gt;a)&amp;&amp;(i&lt;200)){ ...

5
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
04.01.2014, 22:38
OxomHuK, если правильно понял, то просто делаете геттер в классе CommandLine, который возвращает список команд, в классе HelpCommand создаете экземпляр CommandLine и получаете свежесозданным геттером нужный список
0
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
05.01.2014, 01:49  [ТС]
Насчет геттера да, не проблема. Вопрос в том, нормально ли это, когда класс CommandLine, который хранит список команд(в том числе и HelpCommand), завязан на классе HelpCommand, а класс HelpCommand будет завязан на классе CommandLine. Лично мне кажется это неправильным с точки зрения семантики, ООП, шаблона команда да и воoбще здравого смысла. Я еще думал один этот класс HelpCommand сделать внутренним, а все остальные внешними, но тоже как то кривовато.
0
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
05.01.2014, 04:49  [ТС]
Выкладываю то, что у меня получилось.
Осталась там только странная проблема: есть команда .. которая переходит в родительскую директорию. Почему то при запуске программы при первом вводе .. ничего не происходит, а потом только со второго раза начинает переходить вверх, если кто поправит ошибку - буду очень благодарен
Вложения
Тип файла: zip Command_CommandLine.zip (36.8 Кб, 9 просмотров)
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
09.01.2014, 11:46
Цитата Сообщение от OxomHuK Посмотреть сообщение
Идея - чтобы полностью избавиться от inner классов.
А смысл? Help - в некоторм смысле специальная команда, внутренняя к командному процессору. Ее как раз можно сделать внутренним классом. А остальные - да, согласен, стоит вынести.
1
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
10.01.2014, 22:06  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
Ее как раз можно сделать внутренним классом. А остальные - да, согласен, стоит вынести.
Тоже так думал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2014, 22:06
Помогаю со студенческими работами здесь

Командная строка
Как сделать так, чтобы командная строка обрабатывала процедуры, но сама не открывалась, чтобы проверить версию явы. Как это можно сделать,...

Командная строка
package commonLine; import org.apache.commons.cli.*; import java.io.*; public class InputData { static int leftArgs...

командная строка, реализация
Собственно задание. -------- Реализовать консольную программу на Java, которая бы представляла некую реализацию командной строки, то...

Командная строка, пакетирование, classpath, sourcepath
Доброго времени суток! Не так давно начал самостоятельно изучать Java по книге Философия Java. Дошел до темы пакетирования. И застрял на...

Есть строка определенной длины. Вторая строка меньше первой. Найти точку в которой вторая строка входит в первую
Условие: Есть строка определенной длины. Вторая строка меньше первой. Найти точку в которой вторая строка входит в первую.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru