tgoop.com/unsafecsharp/183
Last Update:
Fluent-interface
Вы, наверное, слышали и встречали такую штуку, а некоторые даже писали.instance.Method1().Method2()
По своему определению текучие интерфейсы представляют из себя набор методов, где каждый метод добавляет или удаляет какое-то свойство, то есть меняет инстанс.
В принципе я с этим не совсем согласен. Я считаю, что такие методы должны ставить флаги (или просто записывать входные параметры), то есть не должны выполнять работу прямо в месте вызова.
Как?
Ну это довольно просто:void Method() {…}
Меняем наT Method() { return this; }
Где T может быть текущим типом, может быть интерфейсом (как в оригинале было и задумано, но структуры все портят).
Где?
Я использую такое в API своих ME.ECS/BECS для сборки фильтров и запросов.
Вне ecs я передаю настройки в виде структуры, которую я собираю как раз через такой подход. Ну и твинер у нас написан с таким же походом.
Зачем?
Лаконичность кода и легкость восприятия.
Пишите в комментах где вы используете fluent-interface подход.
#architecture #fluent #interface
BY Unity: Всё, что вы не знали о разработке
Share with your friend now:
tgoop.com/unsafecsharp/183