Что такое табличные методы? - PullRequest
11 голосов
/ 20 сентября 2008

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

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

Ответы [ 3 ]

20 голосов
/ 20 сентября 2008

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

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

8 голосов
/ 02 февраля 2015

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

Из полного кода, 2-е издание:

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

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

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

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

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

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]

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

3 голосов
/ 23 сентября 2008

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

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

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

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

...