Каково различие между Алгоритмом и Шаблоном разработки

ВЫБРАТЬ имя, GROUP_CONCAT (sdate) в качестве gr_date ОТ таблицы_имя GROUP BY name

21
задан 3 revs, 2 users 73% 9 October 2018 в 08:50
поделиться

9 ответов

Алгоритм похож на рецепт: пошаговый процесс для выполнения некоторого действия.

шаблон разработки А похож на проект: структурированный набор объектов и ассоциаций и действий для выполнения некоторой цели.

26
ответ дан 16 October 2019 в 23:39
поделиться

Да, существует различие.

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

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

Алгоритмы и шаблоны разработки являются ортогональными, хотя они могут оба использоваться одновременно.

18
ответ дан 16 October 2019 в 23:39
поделиться

Шаблон разработки является относительно неопределенным описанием того, как решить проблему на архитектурном уровне с акцентом на гибкость и пригодность для обслуживания. Алгоритм является точным описанием того, как вычислить что-то определенное с акцентом на правильность и эффективность.

7
ответ дан 16 October 2019 в 23:39
поделиться

Шаблон разработки не может быть непосредственно переведен в код. Это - "стратегия", которая может быть полезна для дизайна приложения. Источник термина является внешним к информатике. Считайте приблизительно Christopher Alexander для узнавания больше.

алгоритм с другой стороны может быть выражен в коде. Это - последовательность операций, которые решают определенную проблему для любого входа.

2
ответ дан 16 October 2019 в 23:39
поделиться

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

В разработке программного обеспечения, шаблон разработки является общим повторяемым решением обычно происходящей проблемы в разработке программного обеспечения. Шаблон разработки не является законченным дизайном, который может быть преобразован непосредственно в код. Это - описание или шаблон для того, как решить проблему, которая может использоваться во многих различных ситуациях. - Christopher Alexander SourceMaking

является архитектором, который сначала изучил шаблоны в зданиях и сообществах и разработал "язык шаблона" для генерации их.

Каждый шаблон описывает проблему, которая происходит много раз в нашей среде и затем описывает ядро решения той проблемы таким способом, которым можно использовать это решение миллион раз, никогда не делая его тот же путь дважды. - Christopher Alexander

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

2
ответ дан 16 October 2019 в 23:39
поделиться

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

, Например, Вы могли бы использовать несколько различных алгоритмов в сочетании с шаблон разработки .

Стратегии
1
ответ дан 16 October 2019 в 23:39
поделиться

Алгоритм является определенным набором шагов для выполнения задачи. Декодирование звукового файла или видеофайла использовало бы алгоритм.

шаблон разработки А является большим количеством шаблона для разработки системы с определенными характеристиками.

1
ответ дан 16 October 2019 в 23:39
поделиться

они отличаются: http://en.wikipedia.org/wiki/Design_pattern_ (computer_science) по сравнению с http://en.wikipedia.org/wiki/Algorithm

использование шаблон разработки команды ( http://en.wikipedia.org/wiki/Command_pattern ), легко реализовать отмену/восстановление: http://www.cs.mcgill.ca/~hv/classes/CS400/01.hchen/doc/command/command.html

связанный вопрос: Шаблон разработки для Механизма Отмены

1
ответ дан 16 October 2019 в 23:39
поделиться

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

0
ответ дан 16 October 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: