Comments 14
Надеюсь, потенциальные клиенты сделают выводы, хотя бы почитав комментарии)
То-то у меня недоумение росло, чем дальше я углублялся в публикацию. Метод подачи материала какой-то "шумный". Все слова знакомые, но нужно поднапрячься, чтобы понять, что автор хотел показать в примерах (особенно, если читать комментарии). Лучше уж перевод.
И кстати, а что такое "коммерческий блог"?
Возможно, смысл в том, чтобы посмеяться, заменив некоторые названия Синглетон, Командир, Шаблон) Можно придумать свои паттерны вместо существующих (конструктор вместо билдера), можно часть паттернов с похожим названием объединить (фабричный метод и абстрактная фабрика), а потом ещё и придумать им новую неправильную (даже "анти-паттерновую") реализацию. Думаю, много ещё чего можно придумать)
Вы пытаетесь подменять понятия — статья для новичков, это статья с базовыми и простыми понятиями, но не с грубыми ошибками и домыслами. Как раз опытному разработчику подобная дезинформация вреда не нанесет, а что прикажете делать "наученным" такими статьями новичкам?
Откуда столько злости?
Это не злость, а feedback. Вам самому не режет глаз в первом же примере?
first_Module.declare_Nickname();
let Surname = "...";
Или в чём назначение функции?
function declare_Surname() {
console.log(Surname);
}
Она нигде далее в примере не используется.
Или вот такой фрагмент кода для шаблона "Конструктор":
//у нас есть класс как шаблон, но как нам заставить сохранять в localStorage эти данные?
let item = new ItemDeal(`${text}`, `${select.value - 1}`); //где text - данные из инпута, a select.value - данные о цвете
let myJson = JSON.stringify(item); // чтобы у нас дела могли сохраняться в //localStorage, нам нужно упаковать только что созданный объект
//localStorage.setItem(item.name, myJson);
Откуда вдруг возник localStorage
и зачем нам в него что-то сохранять? Где здесь применение шаблона "Конструктор" — new ItemDeal
или JSON.stringify
?
Или вот такой текст в комментах кода:
//синглетон хорош, если у вас один герой в игре. Для Джуманджи он как раз бы и не подошел.
//но мне нужна была игра с несколькими персонажами для иллюстрации работы паттерна
Ощущение, что автор попутал пространство кода и пространство самой публикации.
А вот нарушение принципа наименьшего удивления:
const smolder = new Hero('Smolder!');
console.log(smolder.getName()); // Smolder!
const ruby = new Hero('Ruby');
console.log(ruby.getName()); // Smolder!
Как правильно заметил коллега andres_kovalev :
Как раз опытному разработчику подобная дезинформация вреда не нанесет, а что прикажете делать "наученным" такими статьями новичкам?
Вот хороший для новичка пример реализации "Одиночки":
var Singleton = new function(){
var instance = this;
// Код конструктора
return function(){ return instance }
}
console.log( new Singleton === new Singleton ); // true
Паттерны проектирования в JS: паттерны создания объектов