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

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

04.01.2014, 21:06. Показов 938. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru