Вопрос

Что такое "табличный метод"?

Как упоминал Билл Гейтс в вторая реклама Windows Vista в 1:05.

Это было полезно?

Решение

Табличные методы - это схемы, которые позволяют вам искать информацию в таблице, а не использовать логические инструкции (т. е.случай, если).В простых случаях быстрее и проще использовать логические инструкции, но по мере усложнения логической цепочки табличный код становится проще сложной логики, его легче модифицировать и он эффективнее.

Ссылка: Макконнелл, Стив.Код завершен, Второе издание.Редмонд (Вашингтон):Майкрософт, 2004.С принтами.Страница 411, Параграф 1.

Другие советы

На упомянутом видео Билл Гейтс читает отрывок из книги Стива Макконнелла "Code Complete". Джефф Этвуд упомянул об этом в своем блоге (ссылки на YouTube совпадают).

Из Code Complete, 2-е издание:

Табличный метод - это схема, которая позволяет вам искать информацию в таблице, а не использовать логические инструкции (если и кейс) чтобы разобраться в этом.

Макконнелл использует массив в качестве "таблицы" в своих примерах, но я думаю, что эта концепция может быть применена к таблицам базы данных или ко всему другому, что похоже на таблицу.

Эту концепцию действительно лучше всего объяснить на примере.

Допустим, вы управляете рестораном и у вас разное количество посадочных мест для каждого столика.

Ваша логика получения количества мест за определенным столом может выглядеть примерно так

if table number == 1
    table has 4 seats
else if table number == 2
    table has 8 seats
. . .

таким образом, если у вас есть 50 столов, у вас будет 100 строк кода только для определения количества мест.

Используя табличные методы, вы могли бы создать массив с индексом, представляющим номер таблицы, и значением, представляющим количество мест, поэтому ваша логика вместо этого выглядела бы примерно так

tables [] = {4, 8, 2, 4, ...}
table seats = tables[table number]

который проще, короче и удобнее в обслуживании.

Табличный метод довольно прост.Используйте структуры данных вместо операторов if-then для управления логикой программы.Например, если вы обрабатываете записи двух типов (телевизионные и кабельные), вы могли бы сделать это:

hash[tv] = process_tv_records
hash[cable] = process_cable_records

В некоторых языках, таких как Ruby или Perl, этот метод прост.В Java вам нужно было бы использовать отражение для поиска дескрипторов методов.

Если вы хотите узнать о таблицах принятия решений, изучите систему тестирования фитнеса по адресу http://fitnesse.org/.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top