паттерны программирования
Jul. 5th, 2022 03:53 pmГлавная боль с ними - это отсутствие нормальной документации.
Я только что хотел показать человеку "adapter". Казалось бы, пять строчек. Всё, что я нашёл - это какая-то бездна, и мой мозг стекает ещё до того, как я заканчиваю читать. Я понимаю паттерн, я не понимаю, что эти авторы хотят сказать.
Или, фабрика. Тривиальная же вещь: верни функцию с замыканием вместо значения. Но нет, всё, что идёт в статьях со словом "pattern", кажется, написано людьми, которые *любят* xml, писают кипятком от синтаксиса java и хочень бы хотели xlst вот ту вот очаровательную soap.
... Отсюда, вопрос, а есть ли кто-то, кто этим вопросом занимался и кто бы написал вменяемый обзор? Я понимаю, что у разных языков программирования разный уровень бойлерплейта (builder pattern для Rust/Java - это база и так и надо, в питоне можно, но будет выглядеть странно, потому что в аргументах можно много и выразительно варьироваться), но всё-таки, самый базовый простой обзор? Желательно, без махрового ООП.
Я только что хотел показать человеку "adapter". Казалось бы, пять строчек. Всё, что я нашёл - это какая-то бездна, и мой мозг стекает ещё до того, как я заканчиваю читать. Я понимаю паттерн, я не понимаю, что эти авторы хотят сказать.
Или, фабрика. Тривиальная же вещь: верни функцию с замыканием вместо значения. Но нет, всё, что идёт в статьях со словом "pattern", кажется, написано людьми, которые *любят* xml, писают кипятком от синтаксиса java и хочень бы хотели xlst вот ту вот очаровательную soap.
... Отсюда, вопрос, а есть ли кто-то, кто этим вопросом занимался и кто бы написал вменяемый обзор? Я понимаю, что у разных языков программирования разный уровень бойлерплейта (builder pattern для Rust/Java - это база и так и надо, в питоне можно, но будет выглядеть странно, потому что в аргументах можно много и выразительно варьироваться), но всё-таки, самый базовый простой обзор? Желательно, без махрового ООП.
no subject
Date: 2022-07-05 03:03 pm (UTC)Фабрика производит инстансы конкретного типа, а абстрактная параметризуется типом. Верно насчет классов. Но не редактировать же эту древнюю хрень.
no subject
Date: 2022-07-06 08:45 am (UTC)А, "абстрактная" - это с типопараметром? Вероятнее всего, это заметно в языках с generic'ами и статической типизацией.
no subject
Date: 2022-07-06 11:42 am (UTC)Нет, проще. Возвращаемая имплементация запрашиваемого интерфейса зависит от рантайм-факторов.
no subject
Date: 2022-07-06 12:45 pm (UTC)Вообще, это звучит как "плагин" или даже dyn trait, а не как фабрика.