Go 設計理念介紹:裝飾模式

裝飾模式

裝飾模式是一種裝飾原來設計的方式,可以針對需要的函數加強某些功能,而不會變動到原本的函數,不會破壞原本的函數設計,又可以加強需要的功能。舉例來說:

func log(h http.Handler) http.Handler {
  return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    log.Println("Before")
    h.ServeHTTP(w, r)
    log.Println("After")
  })
}