시나리오 : 멀티 파일을 사용하여 여러 파일에 기능을 디스패치하고 보급하려고합니다. 파일 중 하나는 멀티 메소드 만 포함하고 사용할 수 있도록 수동으로 파일을로드해야합니다. 명시 적으로로드하는 대신 파일을 자동으로로드하는 방법이 있습니까?멀티 메소드 파일 만로드
여기에 내가 뭘하는지의 간단한 예제 : 사용 그룹 : 내가 명시 적으로 추가하는 등, app.core에로드하지 않는
; app/core.clj
(ns app.core
(:use [app.fruit.core :only [make-fruit]])
(println (:name (make-fruit :banana)))
; app/fruit/core.clj
(ns app.fruit.core)
(defmulti make-fruit identity)
; app/fruit/banana.clj
(ns app.fruit.banana
(:use [app.fruit.core :only [make-fruit]])
(defmethod make-fruit :banana [fruit]
{:name "banana" :color "yellow})
fruit.banana의 방법은로드되지 않습니다. 이 방법을 구현하는 모든 방법에 대해 명시해야하기 때문에 멀티 메소드 사용의 목적을 무력화시키는 것 같습니다.
와일드 카드 네임 스페이스가 허용 된 경우 이는 사소한 것입니다. 이 스레드를 따르십시오 http://stackoverflow.com/q/1990714/1552130 – KobbyPemson