Можно ли ссылаться на шаблоны проектирования (фабричные шаблоны) вне классического ООП-подхода? (академический контекст) - PullRequest
0 голосов
/ 28 июня 2018

Теперь, во-первых, я не совсем уверен, стоит ли это переносить в академические круги, но я думаю, что это все еще "ТАК достаточно".

Здесь ситуация. Для магистерской работы я реализовал веб-приложение с использованием javascript / angularjs. Данное приложение позволяет пользователю создавать различные элементы, и поэтому мне пришлось реализовать различные наборы инструментов и мастеров. С точки зрения высокого уровня, я использовал фабричные шаблоны:

Службы Angular предоставляют методы для контроллеров для получения объектов, которые создаются службой на основе каркаса абстрактного объекта и параметров, заданных контроллером.

Тогда это имело смысл для меня, так как я в основном привык к Java. Теперь я полностью осознаю, что AngularJS (Javascript) не является языком ООП и в нем отсутствуют такие вещи, как наследование, которые обычно являются основным элементом классических шаблонов проектирования. Фабрика - не единственный пример, я также использовал подходы типа Observer и Producer / Consumer.

Теперь в моем письменном тезисе я должен описать и в идеале подтвердить, что я сделал и почему. Простое «Это имело смысл для меня» - это не то, что я чувствовал бы себя комфортно, когда писать плохие ссылки, было бы еще хуже. Таким образом, вопрос состоит в основном из трех частей:

Можно ли ссылаться на классические шаблоны проектирования в этом контексте?

Если нет, существуют ли другие, аналогичные стандарты для неопорных языков?

Если также нет, было бы лучше, если бы я думал, что это хорошая идея, чем вообще ничего не объяснять?

1 Ответ

0 голосов
/ 10 июля 2018

Это вполне жизнеспособно для ссылки на шаблоны проектирования таким образом. Характер шаблонов проектирования заключается в создании общего словаря для задач и сил, которые на них действуют. Решения этих общих проблем часто различаются в зависимости от языка.

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

Чтобы использовать более яркий пример, Юлий Цезарь применил шаблон Команды, когда он писал зашифрованные инструкции далеким генералам и отправлял их верхом-посланником.

...