Что такое методы, управляемые таблицами?

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

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

Видео личное. Есть где-нибудь копия?

stian 02.07.2011 00:03
Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Когда мы говорим о том, как сделать следующий шаг в качестве разработчика, мы должны понимать, что качество кода всегда является основным фокусом на...
Принципы SOLID - лучшие практики
Принципы SOLID - лучшие практики
SOLID - это аббревиатура, обозначающая пять ключевых принципов проектирования: принцип единой ответственности, принцип "открыто-закрыто", принцип...
12
1
16 453
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Table-driven methods are schemes that allow you to look up information in a table rather than using logic statements (i.e. case, if). In simple cases, it's quicker and easier to use logic statements, but as the logic chain becomes more complex, table-driven code is simpler than complicated logic, easier to modify and more efficient.

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

Если это слепое копирование, рассмотрите возможность добавления ссылки.

Pmpr 28.05.2016 03:52

"методы драйвера таблицы поиска"

aaaaa says reinstate Monica 08.02.2017 04:10

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

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

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

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

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

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

A table-driven method is a scheme that allows you to look up information in a table rather than using logic statements (if and case) to figure it out.

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

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

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

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

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]

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

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