Показать сообщение отдельно
Старый 20.05.2013, 18:18   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: подобие консоли

Ну со словарём - всё от части верно.
Это тупо key(string)<>value(class) словарь, который будет указывать на класс который будет иметь свой метод парсинга параметров.

Подумай о том как это реализовать чтобы оно удобно масштабировалось.
Я бы сделал интерфейс который нужно наследовать классом для каждой команды, в данном интерфейсе будут требоваться методы:
Help(Console)
Parse(Console, String)

Метод Help нужен для того чтобы например распарсить такую строку:
instance ?
Твой консоль будет всегда знать, что после команды если идёт вопросительный знак - значит это запрос help'а по команде. Твой консоль найдёт по словарю экземпляр класса команды, и вызовет Help, который уже сам сделает что надо - например выведет текст в консоль с инфой по команде.

А при например такой строке:
intance 100
У тебя идёт всегда разбивание строки по пробелу, и первый в списке - будет команда, находишь экземпляр класса команды, и далее шлёшь всю строку исключая команду, в данном случае "100". В методе Parse уже сам реализуешь как и что делать с этой строкой. Ну и выводишь там результат если нужно обратно в консоль.

Таким образом у тебя будет класс консоли, словарь команд, интерфейс для каждой команды, и возможность создавать классы команд наследуя интерфейс.
Получается весьма масштабируемая система для консоли. Хранить классы команд, можно в разных файлах, например в файле для пользователей команды для работы с пользователями, и т.п.
Это добавляет модульности.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
wppt (20.05.2013)