#!
> ну как бы верно про ООП все
Верно, что паттерны применимы к ООП, но не верно отождествлять паттерны с ООП.
На практике в коде на том же си частенько попадаются синглтоны, фабрики и т.д.
Ну и такое понятие как хэндл - чем не паттерн?
Delfigamer
> А в ассемблере нет ООП.
Даже, если бы не было ILasm, это было бы неверно.
u960
> нету там этого гавна
Аргументация уровня "бог"
https://github.com/huawenyu/Design-Patterns-in-C
> if .. else чем тебе не паттерн
Тем, что это языковые конструкции.
u960
> ты перегрелся на солнце?
> if .. else чем тебе не паттерн
Да, это тоже паттерн. Называется "структурное программирование". Про него и книжка есть, всё как положено.
Delfigamer
> Да, это тоже паттерн. Называется "структурное программирование". Про него и
> книжка есть, всё как положено.
Предлагаю распространить название паттерн на Goto и ключевыe слова языка!
Кто не согласен, что Foreach вполне себе патттерн?
а, что вполне здраво программировали олд-фаги с паттернами не зная своего счастья. :)
P.S. Кстати, а паттерны структурного программирования где то детально описаны?
(типа это правильный паттерн, а это не по пацански)
KPG
> Предлагаю распространить название паттерн на Goto и ключевыe слова языка!
я подозреваю тебя в использовании паттерна фигурных скобок!
KPG
> P.S. Кстати, а паттерны структурного программирования где то детально описаны?
является ли рекурсия паттерном?
как насчёт конечных автоматов?
или это всё методы решения, но не шаблоны проектирования
KPG
> Предлагаю распространить название паттерн на Goto и ключевыe слова языка!
Карандаши и ластики - это не паттерны, паттерны - это фигуры, которые ты можешь ими нарисовать.
Так что сам по себе goto - это ещё не паттерн. А вот, например, "конечный автомат" - это уже паттерн. Его, кстати, можно рисовать по-разному - через goto, через хвостовую рекурсию, через switch (state) case, даже через interface FoobarState { void step(in Context ctx, out FoobarState nextState); }.
KPG
> Кто не согласен, что Foreach вполне себе патттерн?
Форич - это паттерн. В некоторых языках есть специальный трафарет, по которому он рисуется одним движением. В остальных его можно рисовать через интервалы for i := 0 to Length(xs) - 1 do, через объекты-итераторы типа IEnumerable, через коллбеки, ну или даже через goto, если прям совсем с трафаретами туго.
KPG
> P.S. Кстати, а паттерны структурного программирования где то детально описаны?
> (типа это правильный паттерн, а это не по пацански)
Книжка от Дейкстры, вроде как, так и называется, "структурное программирование".
Delfigamer
> Да, это тоже паттерн. Называется "структурное программирование".
gudleifr
Ладно, ладно, двойка по истории, не угадал. Дейкстра только блогировал в поддержку, а сами паттерны появились ещё при царе Горохе.
Zefick
Ой, а кто-то вот до сих пор не знает, что прямые ссылки с гугло-поиска никому не видны.
Delfigamer
> gudleifr
А я-то тут при чем?
endeavour_pr
> Вот этот чел повёрнут на паттернах, и паразитирует на геймдеве как раз, где
> вообще то кроме программирования полно сложностей.
Есть пробитие! Хороший пример типичного такого "умника"... показушник, клоун. Когда я слышу таких людей складывается впечатление будь-то они покуривают кубинскую сигару и мочат язык в вине выдержки не меньше лет 30. ЧСВ зашкаливает в общем.
По поводу "сложностей в геймдеве" - это 100% так. Тут масса своих специфических тонкостей, по которым программировать, зачастую, необходимо иначе чем в более тривиальных приложениях где можно выпендриваться с паттернами. Безусловно и в геймдеве есть свои паттерны, но есть ребята которые пытаются натянуть... как там выше сказали... сову на глобус? Прийти в другой монастырь со своими правилами, искоренить "еретиков" и "крестить Русь" :))
Или люди зубрилы, считающие "интуитивное программирование" отклонением от нормы, в следствии чего желая быть самыми правильными(признайся и ты тоже когда-то такое испытывал) готовы казнить каждого :))
В целом я сейчас дважды сказал одно и тоже, но по разному))
И не стоит забывать, что кто-то зубрит паттерны, а кто-то изобретает свои, которые через n-лет кто-то будет зубрить и не нужно путать это с велосипедами)
Есть одна хорошая заповедь: Одно приложение должно решать одну проблему. Большинство приложений такими и являются или решают несколько проблем(имеют несколько функций), по этому их создать проще, с точки зрения архитектуры. Но ИГРА это, наверное, самый большой сборник разнообразия, по этой причине гибкость там нужна намного больше. Игры ломают большинство паттернов, подходящих для обычных приложений.
Я бы даже сказал бы, что после своего опыта в геймдеве создавал бы приложения используя паттерны из геймдева, по крайней мере те, которые сложнее простого или среднего :))
Humano5974
> Одно приложение должно решать одну проблему...
Игры - тоже. Однако, здесь не принято говорить о "проблеме", "смысле", "идее" игры - только об объеме необходимой копипасты. А копировать, не понимая смысла, приходится, действительно, приходится много и разнообразно...
gudleifr
> Однако, здесь не принято говорить о "проблеме", "смысле", "идее" игры
А их и не должно быть. Игра должна приносить удовольствие.
Проблема, смысл, идея это тебе к трудам философов.
Super_inoy
> Игра должна приносить удовольствие.
Ага. А дом просто должен стоять. И зачем нам архитектура?
Тема в архиве.