Я все еще учусь, как быть хорошим дизайнером / разработчиком C ++. Большая часть моего опыта связана с встроенным c. < /P>
Я недавно опросил для работы по программированию C ++. Меня попросили разработать класс, который считывает пользовательский ввод из командной строки, а затем выполняет действия на основе ввода пользователя - записываемого в файл, генерируя случайные данные и т. Д. Это было функционально. < /P>
Меня спросили о том, как я бы изменил дизайн, чтобы функциональность для получения пользовательского ввода была отделена от функциональности, выполняющих действия. правильный ответ. Мой ответ состоял в том, что должен быть базовый класс ввода с виртуальными функциями, где это применимо. Этот базовый класс может быть унаследован от и стал более конкретным в зависимости от того, какой тип ввода он должен обрабатывать. Класс, выполняющий действия, будет содержать указатель на базовый класс ввода и просто вызовет необходимые виртуальные функции посредством динамического привязки. Интервьюеры казались неудовлетворенными этим ответом.
Мой вопрос: какие здесь применимы дизайн -шаблоны, где данные будут в разных форматах из разных источников, но достаточно похожи, чтобы гарантировать общий интерфейс? < /P>
Подробнее здесь: https://stackoverflow.com/questions/795 ... logic-in-c