oxa

Хочу все знать

Jan 18, 2011 18:48

Как, интересно, ограничить функцию десятью строками, если есть switch на 50 case-ов?

И как не стать параноиком, опасаясь, что у класса слишком много полномочий и дробя его на все большее и большее количество подклассов. :-/

И как заставить себя писать документацию к своему же коду? :( Вот это самая непосильная задача, как оказалось.

работа, ворчание

Leave a comment

Comments 22

dodddgy January 18 2011, 21:42:26 UTC
Если формально, то ООП учит, что switch-case надобно заменять на иерархии классов с виртуальными фунциями. На практике - как получится :)

Да не всё ли равно какие у класса полномочия, если:
а) никто другой их (классы) не собирается использовать
б) ты помниш где что и существующая иерархия не мешает добавлять фунциональность
?
Гораздо чаще можно встретить параною с разбивкой классов на супер мелкие с аргументацией - ну как же, вот через N лет этот класс можно будет развить и добавить ... Пока не мешает - нечего разбивать.

Сначала пишутся комментарии, они же план алгоритма, потом код. Если надо изменить, то сначала пишешь что код будет делать, потом меняешь. Ну и самодисциплина, конечно.

Reply

oxa January 18 2011, 22:24:58 UTC
> switch-case надобно заменять на иерархии классов с виртуальными
> фунциями.

Хм... А не кинешь в меня соответствующей ссылкой? А то я не совсем поняла, как заменить switch на иерархию классов.
Скажем, в окно приходит 50 разных сообщений, на каждое из которых надо прореагировать соответствующей функцией. Даже если функции будут виртуальными, их все равно надо вызвать?

> Сначала пишутся комментарии, они же план алгоритма, потом код.

Жесть! И так с каждой функцией?

Reply

kdnzp January 19 2011, 19:45:01 UTC
Вот такое есть в студии:

#region // Открываем блок
...
#endregion // Закрываем блок

А дальше блок можно просто свернуть))). Наверное что-то подобное есть и у борланда.

* Что же касается замены switch на классы - то соглашусь с dodddgy - лучше делать так, как привычнее и понятней. Часто просто забиваю на то как правильно и делаю так, как удобно))). Главное чтобы логика была ясна, реализация уже второй вопрос, если не мешает последующим доработкам ( ... )

Reply

oxa January 19 2011, 20:18:28 UTC
> Вот такое есть в студии ( ... )

Reply


rivalu January 18 2011, 21:55:39 UTC
Я тоже хочу всё знать. :))) Просвятите никчёмного гуманитария, что такое класс??

Reply

(The comment has been removed)

rivalu January 18 2011, 22:19:44 UTC
А ещё это комната в которую загоняют маленьких детей начиная с семи лет и 10 лет пытают там! :O

Reply

(The comment has been removed)


Leave a comment

Up