Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рефакторинг кода 
V
    Опции темы
lexrova
Дата 10.8.2012, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.8.2012

Репутация: нет
Всего: нет



Добрый день. 

Есть класс CodeGenerator, который умеет генерить код на разных языках. Исходя из предположения, что количество языков будет увеличиваться, предложите refactoring кода. Аргументируйте преимущество вашего кода над существующим.

Код


class CodeGenerator
{
public:
    enum Lang {JAVA, C_PLUS_PLUS, PHP};
    CodeGenerator(Lang language) { _language=language; }
    std::string generateCode()
    {
        switch(_language) {
            case JAVA: //return generated java code
            case C_PLUS_PLUS: //return generated C++ code
            case PHP: //return generated PHP code
        }
        throw new std::logic_error("Bad language");
    }    
    std::string someCodeRelatedThing() // used in generateCode()
    {
        switch(_language) {
            case JAVA: //return generated java-related stuff
            case C_PLUS_PLUS: //return generated C++-related stuff
            case PHP: //return generated PHP-related stuff
        }
        throw new std::logic_error("Bad language");
    }

private:
    Lang _language;
};







PM MAIL   Вверх
Amp
Дата 10.8.2012, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



В Яндекс захотелось?
PM MAIL   Вверх
lexrova
Дата 10.8.2012, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.8.2012

Репутация: нет
Всего: нет



Цитата

В Яндекс захотелось?


лучше в Google
PM MAIL   Вверх
Amp
Дата 10.8.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Цитата(lexrova @  10.8.2012,  14:23 Найти цитируемый пост)
лучше в Google 

Но задания Яндексовые.
PM MAIL   Вверх
lexrova
Дата 10.8.2012, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.8.2012

Репутация: нет
Всего: нет



Цитата

Но задания Яндексовые.


Если можно, ткните ссылкой, найти пока не получается.

Добавлено @ 14:43
http://www.coderanch.com/t/99690/patterns/...ode-refactoring
вот пока только это. Буду разбираться дальше. Спасибо, что подсказали про яндекс, обычно я им не пользуюсь.
вот еще (это из гугла):
http://habrahabr.ru/post/112123


Это сообщение отредактировал(а) lexrova - 10.8.2012, 14:52
PM MAIL   Вверх
Amp
Дата 10.8.2012, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Цитата(lexrova @  10.8.2012,  14:38 Найти цитируемый пост)
Если можно, ткните ссылкой, найти пока не получается.

http://company.yandex.ru/job/vacancies/dev...king_search.xml
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2157 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.