Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Каковы некоторые примеры реализации шаблонов проектирования с использованием JavaScript?
Я умеренно квалифицированный программист, использующий JavaScript, но я не гуру. Я знаю, что вы можете делать с ним довольно мощные вещи, просто я не видел ничего, кроме довольно простых манипуляций DOM. Мне интересно, могут ли люди привести некоторые примеры традиционных концепций дизайна, таких как фабричный метод, Singleton и т. д. с использованием JavaScript. В каких случаях эти шаблоны будут использоваться в интернете?
Я просто хотел добавить свой любимый шаблон JavaScript, который я узнал из Pro JavaScript Design Patterns, которые уже рекомендовал Джонатан Раух.
Это шаблон пространства имен singleton. В основном, вы создаете пространства имен с помощью синглетов, которые позволяют скрывать методы и переменные от внешнего использования. Скрытые / открытые методы на самом деле скрыты, потому что они определены в закрытии.
var com = window.com || {};
com.mynamespace = com.mynamespace || {};
com.mynamespace.newpackage = (function() {
var myPrivateVariable = "hidden";
var myPublicVariable = "exposed";
function myPrivateMethod() {
return "also hidden";
}
function myPublicMethod() {
return "also exposed";
}
return {
myPublicMethod: myPublicMethod,
myPublicVariable: myPublicVariable
};
})();
Николай коснулся этого вопроса, но шаблоны проектирования не согласуются между языками, которые имеют кардинальные различия. Я уже читал раньше (и согласен с этим), что шаблон дизайна часто является признаком отсутствующих функций в языке.
Как идеальный пример, шаблон "Factory" совершенно не нужен в некоторых языках, Ruby как пример, о котором я думаю (потому что построение объекта - это просто метод на экземпляре класса):
# create a factory for MyObject
my_factory = MyObject
instance_1 = my_factory.new
# change the factory to another class
my_factory = MyOtherObject
instance_2 = my_factory.new
Всякий раз, когда вы применяете шаблон дизайна к другому языку, чем он был изначально разработан, убедитесь, что вы считаете, если это REALLY необходимо, и какие способы вы могли бы улучшить его с помощью новых языковых функций, доступных. Шаблоны дизайна - это всего лишь руководство, вы всегда должны учитывать, действительно ли вам нужен шаблон для использования, или он может быть принят в вашем случае лучшим образом.
@jamting:
Боже мой. У меня нет слов.
To OP: да, конечно, вы можете в некотором смысле, но некоторые паттерны, как вы привыкли к ним, не так заметны, как в Java. Например, singleton будет просто объектом:
var singleton = {
sayHello: function() {
alert("Hello!")
}
};
В Википедии есть пример фабрики в JS.
Есть хорошая бесплатная онлайн-книга Адди Османи, представляющая Javascript шаблонов дизайна: Essential JavaScript Design Patterns For Beginners, Том 1
Недавно я использовал лучший класс анимации Берни , который широко использует шаблон дизайна стратегии . Берни отлично справляется с описанием того, почему следует использовать шаблон стратегии, но, к сожалению, не объясняет точно, как работает код. Затем снова, при использовании ссылки на шаблоны проектирования, взгляните на код и комментарии в animator.js для хорошего примера использования шаблона стратегии.
Пример:
// This object controls the progress of the animation
ex1 = new Animator();
// The Animator's subjects define its behaviour
ex1.addSubject(updateButton);
function updateButton(value) {
$('ex1Button').innerHTML = "Progress: " + Math.round(value * 100) + "%";
}
// now click below: each click to the button calls ex1.toggle()
Как называется эта практика в JavaScript году?
Это шаблон дизайна самозвания. Я никогда не видел его, пока не начал писать Джаваскрипты.
Послушайте , как Джастин Диас говорит о шаблоне дизайна для Javascript. Речь тоже основана на его книги про Javascript методы, описанные выше. Речь идет о 45 мин в Google I/O
Конечно, они могут. Вот книга на эту тему:
Шаблоны Проектирования Pro JavaScript
Вот пример фабричного шаблона:
Заводская модель в Javascript
Я хотел бы добавить сюда то, что я изучал в группе с обсуждением шаблонов проектирования как в C#, так и в JavaScript. Самое интересное для меня во время встречи заключается в том, что C# парень пишет коды в JavaScript и то же самое для JavaScript парня. После того как я ухожу с собрания я стараюсь узнать больше дома и веду блог здесь http://tech.wowkhmer.com/category/Design-Patterns.aspx как для C#, так и для JavaScript.