Я думал, что use
сделает это, но кажется, что отображение, созданное в текущем пространстве имен, не является общедоступным.Вот пример того, чего я хотел бы достичь:
(ns my-ns
(:use [another-ns :only (another-fct)]))
(defn my-fct
[]
(another-fct 123)) ; this works fine
Тогда у меня есть другое пространство имен, подобное этому:
(ns my-ns-2
(:require [my-ns :as my]))
(defn my-fct-2
[]
(my/another-fct 456)) ; this doesn't work
Я хотел бы сделать это, потому что another-ns
библиотека для доступа к базе данных.Я хотел бы изолировать все вызовы этой библиотеки в одном пространстве имен (my-ns
), чтобы все зависимые от БД функции были бы изолированы в одном пространстве имен, и при необходимости стало бы проще переключаться на другую БД.
Некоторые функции этой библиотеки мне подходят, но я хотел бы дополнить другие.Допустим, функции чтения в порядке, но я хотел бы дополнить функции записи некоторой проверкой.
Единственный способ, который я вижу до сих пор, - это вручную закодировать все отображения в my-ns
даже для функцийЯ не увеличиваю.