Может ли фрагмент кода, если его можно использовать повторно и применять в разных контекстах, классифицировать как образец? - PullRequest
0 голосов
/ 16 января 2009

Что составляет образец? Если у меня есть шаблон / код, который можно использовать повторно и который можно применять в других аналогичных ситуациях, его можно назвать шаблоном?

Вот что я создал. Это бинарный подход к обработке условных конструкций. У меня есть поле в таблице, которое является составным, то есть оно содержит 3 или более других подполей, каждое из которых имеет значение true или false.

Теперь у меня есть подполя, представляющие значения true / false как 0 и 1. Эти поля представлены в виде раскрывающихся списков пользователю в веб-приложении. Эти поля объединяются для формирования байтового значения, содержащего 8 битов, причем первые 3 бита имеют значения 0 или 1, которые пользователь выбирает как ложные или истинные. Если пользователь выберет все поля как истинные, основное поле будет иметь значение 7, а если он выберет все поля как ложные, основное поле будет иметь значение 0 и, как мудро.

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

Этот код может использоваться повторно и может применяться в различных контекстах. Может ли это быть классифицировано как шаблон?

Ответы [ 6 ]

3 голосов
/ 16 января 2009

От Шаблоны проектирования :

«Точка зрения влияет на интерпретацию того, что является и не является шаблоном. Шаблон одного человека может быть примитивным строительным блоком другого человека».

Также говорится, что, как правило, шаблоны имеют четыре основных элемента:

  • имя
  • 1012 * проблема *
  • решение
  • последствия

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

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

1 голос
/ 16 января 2009

Ну, шаблоны проектирования, как правило, более абстрактны, чем эта. Здесь, без сомнения, заложена основная закономерность. Однако детали того, как вы храните, становятся скорее деталями реализации, а не частью шаблона. Теперь вы, вероятно, могли бы глубоко задуматься и разглядеть используемый шаблон, который вы используете. Правда, сейчас уже слишком поздно думать об этом. :) Но вы используете метаданные, которые связаны с такими вещами, как значение атрибута сущности (хотя это не относится к EAV).

1 голос
/ 16 января 2009

Существуют шаблоны языков, но в основном шаблон относится к дизайну, а не к чему-то конкретному для языка.

То, что вы описываете, я бы назвал компонентом.

Кроме того, хранение более одного значения в столбце, вероятно, противоречит принципам нормализации. В долгосрочной перспективе вам будет проще, если вы будете использовать столбец для каждого значения.

См. Первый ответ на этот вопрос для иллюстрации нормализации.

0 голосов
/ 16 января 2009

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

0 голосов
/ 16 января 2009

Не совсем. Шаблон - это решение, способ решения общей проблемы программирования , а не кусок кода.

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

0 голосов
/ 16 января 2009

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

Не уверен, является ли ваш метод одним из таких или нет?!

...