gpt4 book ai didi

design-patterns - 装饰器模式的功能等效吗?

转载 作者:行者123 更新时间:2023-12-03 07:16:34 24 4
gpt4 key购买 nike

与装饰器设计模式等效的函数式编程是什么?

例如,你会怎么写 this particular example功能性风格?

最佳答案

在函数式编程中,您可以将给定函数包装在新函数中。

给出一个与您的问题中引用的类似的人为的 Clojure 示例:

我原来的绘图功能:

(defn draw [& args]
; do some stuff
)

我的函数包装器:

; Add horizontal scrollbar
(defn add-horizontal-scrollbar [draw-fn]
(fn [& args]
(draw-horizontal-scrollbar)
(apply draw-fn args)))


; Add vertical scrollbar
(defn add-vertical-scrollbar [draw-fn]
(fn [& args]
(draw-vertical-scrollbar)
(apply draw-fn args)))

; Add both scrollbars
(defn add-scrollbars [draw-fn]
(add-vertical-scrollbar (add-horizontal-scrollbar draw-fn)))

它们返回一个新函数,可以在使用原始绘图函数的任何地方使用,而且还可以绘制滚动条。

关于design-patterns - 装饰器模式的功能等效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7064389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com